package com.github.ltsopensource.jobtracker.support.listener; import com.github.ltsopensource.core.cluster.Node; import com.github.ltsopensource.core.listener.MasterChangeListener; import com.github.ltsopensource.jobtracker.domain.JobTrackerAppContext; /** * @author Robert HG (254963746@qq.com) on 8/24/14. * JobTracker master 节点变化之后 */ public class JobTrackerMasterChangeListener implements MasterChangeListener { private JobTrackerAppContext appContext; public JobTrackerMasterChangeListener(JobTrackerAppContext appContext) { this.appContext = appContext; } @Override public void change(Node master, boolean isMaster) { if (appContext.getConfig().getIdentity().equals(master.getIdentity())) { // 如果 master 节点是自己 // 2. 启动通知客户端失败检查重发的定时器 appContext.getFeedbackJobSendChecker().start(); appContext.getExecutableDeadJobChecker().start(); appContext.getExecutingDeadJobChecker().start(); appContext.getNonRelyOnPrevCycleJobScheduler().start(); } else { // 如果 master 节点不是自己 // 2. 关闭通知客户端失败检查重发的定时器 appContext.getFeedbackJobSendChecker().stop(); appContext.getExecutableDeadJobChecker().stop(); appContext.getExecutingDeadJobChecker().stop(); appContext.getNonRelyOnPrevCycleJobScheduler().stop(); } } }