private JobScheduleController createJobScheduleController() {
JobScheduleController result = new JobScheduleController(createScheduler(), createJobDetail(), getJobConfig().getJobName());
//注册job
JobRegistry.getInstance().registerJob(getJobConfig().getJobName(), result);
//注册器开始运行
registerStartUpInfo();
return result;
}
public void registerStartUpInfo(final boolean enabled) {
//开始所有的监听器
listenerManager.startAllListeners();
//选举leader /{namespace}/leader/election/instance 放置选举出来的服务器
leaderService.electLeader();
//{namespace}/{ipservers} 设置enable处理
serverService.persistOnline(enabled);
//临时节点 /{namespave}/instances 放置运行服务实例信息
instanceService.persistOnline();
//开启一个异步服务
if (!reconcileService.isRunning()) {
reconcileService.startAsync();
}
}
@Override
public void run(final String... args) {
log.info("Starting ElasticJob Bootstrap.");
applicationContext.getBeansOfType(ScheduleJobBootstrap.class).values().forEach(ScheduleJobBootstrap::schedule);
log.info("ElasticJob Bootstrap started.");
}
获取到所有的定时任务job(ScheduleJobBootstrap类型),执行schedule方法,底层实际使用quartz框架运行定时任务。