All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hc360.rsf.config.AbstractConfig Maven / Gradle / Ivy

The newest version!
/**
 * AbstractConfig.java   2012-4-25
 * Copyright(c) 2000-2012 HC360.COM, All Rights Reserved.
 */
package com.hc360.rsf.config;

import java.io.Serializable;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.hc360.rsf.remoting.Client;
import com.hc360.rsf.remoting.Server;

/**
 * AbstractConfig是所有Config类的抽象父类,在这里做一些公共的处理
 * 
 * @author zhaolei  2012-4-25
 */
public abstract class AbstractConfig implements Serializable {
	private static final long serialVersionUID = 2959085513666904744L;
	private static Logger logger = LoggerFactory.getLogger(AbstractConfig.class);
	 

	/**
	 * 关闭钩子
*
* 这里执行清理工作,如关闭连接等等
*
* 程序正常退出会执行关闭钩子
* 如果程序终止(进程被杀)则无法保证是否能运行关闭钩子
*/ static { Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { public void run() { //System.out.println("--执行关闭钩子,执行退出程序,释放资源--"); destroy(); } }, "RsfShutdownHook")); } /** * 释放RSF所有打开的资源 * * RSF的destroy只有这一处 */ public static void destroy(){ destroy(null); } public static void destroy(String msg){ if (logger.isInfoEnabled()) { logger.info("执行退出程序,释放资源。msg:"+msg); //System.out.println("执行退出程序,释放资源。"); } //关闭Timer定时任务 try{ GlobalManager.TIMER.close(); }catch(Exception e){ } //@modify 关闭RecoveryHandler定时任务 try{ GlobalManager.RECOVERY_HANDLER.close(); }catch(Exception e){ } //关闭Client try{ Client client=GlobalManager.getClient(); if(client!=null){ client.close(); } }catch(Exception e){ } //关闭Server try{ Map server_list=GlobalManager.SERVER_LIST; for(String key:server_list.keySet()){ Server server=server_list.get(key); if(server!=null){ server.close(); } } }catch(Exception e){ } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy