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 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(); } }