在JobScheduler实例化结束后的init方法中会调用schedulerFacade的registerStartUpInfo方法完成注册作业启动信息的工作,解析来我们就来看一下它工作的具体流程
public void registerStartUpInfo(final boolean enabled) {
//启动所有的监听器
listenerManager.startAllListeners();
//选举主服务器
leaderService.electLeader();
//持久化作业服务器上线信息
serverService.persistOnline(enabled);
//持久化作业运行实例上线相关信息
instanceService.persistOnline();
//设置重新分片的标记
shardingService.setReshardingFlag();
//初始化作业监听服务
monitorService.listen();
if (!reconcileService.isRunning()) {
reconcileService.startAsync();
}
}
首先启动的监听器和选举主服务器的流程,剩余的工作就是向注册中心发送信息创建节点。
public void startAllListeners() {
electionListenerManager.start();
shardingListenerManager.start();
failoverListenerManager.start();
monitorExecutionListenerManager.start();
shutdownListenerManager.start();
triggerLis