HeartbeatManager.java 1.64 KB
package com.taover.heartbeat;

import java.util.List;

import com.taover.heartbeat.bean.ClientInstance;
import com.taover.heartbeat.bean.ClientRequest;
import com.taover.heartbeat.bean.Instance;
import com.taover.heartbeat.bean.ReformInstance;
import com.taover.heartbeat.bean.ServerInstance;

public class HeartbeatManager {
	//客户端holder
	private static ClientHolder clientHolder = new ClientHolderImpl();
	//服务端holder
	private static ServerHolder serverHolder = new ServerHolderImpl();
	//通知对象
	private static ReformInstance reformData = new ReformInstance();
	
	public static void registryClient(ClientRequest clientRequest) {
		clientHolder.registryClientInstance(clientRequest);
	}
	
	/**
	 * 刷新客户端信息
	 */
	public static void flushClientStatus() {
		List<ClientInstance> instances = clientHolder.getClientInstanceList();
		for(ClientInstance item: instances) {
			item.flush();
			if(item.needReform()) {
				HeartbeatManager.sendReform(item);
			}
		}
	}
	
	public static void sendReform(Instance instance) {
		reformData.doReform(instance);
	}

	public static void sendServerHeartbeat() {
		List<ServerInstance> instances = serverHolder.getServerInstanceList();
		for(ServerInstance item: instances) {
			item.flush();
			if(item.needReform()) {
				HeartbeatManager.sendReform(item);
			}
		}
	}

	public static void registryServers(String code, String url, int fixRateSec, int maxWaitSec) throws Exception{
		serverHolder.registeServer(code, url, fixRateSec, maxWaitSec);
	}

	public static void setReformData(String emailTo, String weixinWxid, String mobile) {
		HeartbeatManager.reformData.loadConfig(emailTo, weixinWxid, mobile);
	}
}