java quartz 源码_Quartz任务调度-源码分析(3)

Quartz涉及到JobDetail, Schedule和 trigger, 今天简单进行源码分析:

Trigger

public class TriggerBuilder {}

public interface Trigger extends Serializable, Cloneable, Comparable {}

重点说下CronSchedule:

CronTrigger trigger = TriggerBuilder.newTrigger()

.withIdentity("trigger1", "group1")

.withSchedule(CronScheduleBuilder.cronSchedule("0 55 23 ? * *")).build();

继续:

public static CronScheduleBuilder cronSchedule(String cronExpression) {

try {

return cronSchedule(new CronExpression(cronExpression));

} catch (ParseException e) {

// all methods of construction ensure the expression is valid by

// this point...

throw new RuntimeException("CronExpression '" + cronExpression

+ "' is invalid.", e);

}

}

此时涉及到一个新的类CronExpression:

public CronExpression(String cronExpression) throws ParseException {

if (cronExpression == null) {

throw new IllegalArgumentException("cronExpression cannot be null");

}

this.cronExpression = cronExpression.toUpperCase(Locale.US);

buildExpression(this.cronExpression);

}

在buildExpression的时候,会分词解析表达式, 最终结果是这样的:

最终的结果都是存在这里的, 如下图:

继续:

调用这个方法存储每个值:

最终解析存放在每个treeSet中:

现在trigger的任务基本完成

JobDetail

public class JobDetailImpl implements Cloneable, java.io.Serializable, JobDetail {}

public interface JobDetail extends Serializable, Cloneable {}

Schedule

三个实现类:

defaultScheduler.scheduleJob(job1, trigger1);

defaultScheduler.start();

关于schedule, 下次继续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值