HZERO版本:1.0.0.RELEASE
调度结果和客户端执行结果回写逻辑
发起调度
org.hzero.scheduler.infra.job.MyJob#execute
客户端执行
org.hzero.boot.scheduler.app.service.impl.JobExecuteServiceImpl#jobExecute
串行任务和lockTime配置
参数设置
org.hzero.scheduler.domain.service.impl.JobServiceImpl#getMap
逻辑调用
org.hzero.scheduler.infra.job.MyJob#execute
if (Objects.equals(serial, Flag.YES) && !JobLock.addLock(jobId)) {
logger.info(" Scheduler Job Locked. JobId : {} ", jobId);
}
IJobHandler原理 & Job
IJobHandler
org.hzero.boot.scheduler.infra.init.ExecutorInit#scanJobHandler
org.hzero.boot.scheduler.app.service.impl.JobExecuteServiceImpl#jobExecute
Job
QuartzSchedulerThread通过ThreadPool来执行封装Job的JobRunShell;
Job接口是要实现execute方法的.JobRunShell run方法会实例化job实现类,然后调用execute.run方法
org.quartz.core.QuartzSchedulerThread#run
org.quartz.core.JobRunShell#run
失败处理策略 & 重试次数
org.hzero.scheduler.infra.job.MyJob#failureStrategy
执行器 & 执行器策略
org.hzero.scheduler.domain.service.impl.UrlServiceImpl#getUrl
报警邮件
org.hzero.scheduler.infra.job.MyJob#failCallback
任务参数
设置参数
org.hzero.scheduler.infra.job.MyJob#execute
转化参数
org.hzero.boot.scheduler.app.service.impl.JobExecuteServiceImpl#jobRun
Cron & 周期性 & 有效时间
org.hzero.scheduler.domain.service.impl.JobServiceImpl#buildTrigger
自动初始化
org.hzero.scheduler.infra.init.SchedulerServiceInit#run