HttpHeartbeat.java 1.4 KB
package com.taover.bazhuayun.analysis.web.schedule;

import java.util.List;

import javax.annotation.PostConstruct;
import javax.annotation.Resource;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import com.taover.bazhuayun.analysis.web.module.heartbeat.HeartbeatManager;
import com.taover.bazhuayun.analysis.web.repository.AnalysisHeartbeatInstanceEntity;
import com.taover.bazhuayun.analysis.web.repository.AnalysisHeartbeatInstanceRepository;
import com.taover.util.UtilLog;

@Component
public class HttpHeartbeat {
	@Resource
	private HeartbeatManager heartbeatManager;
	@Resource
	private AnalysisHeartbeatInstanceRepository analysisHeartbeatInstanceRepository;
	
	/**
	 * 注册心跳实例
	 */
	@PostConstruct
	public void initHeartbeat() {		
		//注册实例
		List<AnalysisHeartbeatInstanceEntity> instanceList = this.analysisHeartbeatInstanceRepository.findListBySql("status="+AnalysisHeartbeatInstanceRepository.STATUS_ENABLE, null);
		try {
			this.heartbeatManager.loadInstance(instanceList);
		} catch (Exception e) {
			UtilLog.error("心跳监控--server注册失败", e, this.getClass());
		}
	}
	
	/**
	 * 每秒执行一次
	 */
	@Scheduled(fixedDelay=1000)
	public void flushHeartbeat() {
		//刷新注册客户端状态
		this.heartbeatManager.flushClientStatus();
		
		//发送服务端心跳包
		this.heartbeatManager.sendServerHeartbeat();
	}	
}