四:Trigger

Trigger 也有很多类型,最常见的有两种 trigger 分别在后面教程中分别介绍

Trigger 的公共属性

所有类型的 trigger 都有 Trigger 这个属性,表示 trigger 的身份;除此之外,trigger 还有很多其他公共属性。这些属性,在构建 trigger 的时候可以通过 TriggerBuilder 设置。

trigger 的公共属性

属性名称介绍
jobKey当 trigger 触发时被执行的 job 的身份
startTime设置 trigger 第一次触发的时间;该属性的值是 java.util.Date 类型,表示某个指定的时间点
endTime表示 trigger 失效的时间点

优先级

如果你的 trigger 很多,Quartz 可能没有足够的资源同时触发所有 trigger;这种情况下米可能希望控制哪些 trigger 优先使用 Quartz 的工作线程,要达到该目的,你可以在 trigger 上设置 prioriry 属性。

注意:只有同时触发 trigger 之间才会比较优先级。如果 trigger 是可恢复的,在恢复后在调用,优先级与原先 trigger 是一样的。

错过触发(misfire)

tirgger 还有一个重要的属性 misfire;如果 scheduler 关闭了,或者 Quartz 线程池中没有可用的线程来执行 job,此时持久性的 trigger 就会错过(miss) 其触发时间,及错过触发(missfire)。不同类型的 trigger,有不同的 missfire 机制,他们都默认使用“智能机制”(smart policy),即根据 trigger 的类型和配置动态调整行为。当 scheduler 启动的时候,查询所有错过触发的持久性 trigger。然后根据他们各自的 misfire 机制更新 trigger 信息。

日历(calendar)

Quartz 的 calendar 对象可以在定义和存储 trigger 的时候与 trigger 进行关联。Calendar 用于从 trigger 的调度计划中排除时间段,比如,可以创建 trigger,每个工作日志的上午 9.30 执行,然后增加一个 Calendar,排除掉所有商业节日。

   HolidayCalendar cal = new HolidayCalendar();
    cal.addExcludedDate( someDate );
    cal.addExcludedDate( someOtherDate );

    sched.addCalendar("myHolidays", cal, false);


    Trigger t = newTrigger()
        .withIdentity("myTrigger")
        .forJob("myJob")
        .withSchedule(dailyAtHourAndMinute(9, 30)) // execute job daily at 9:30
        .modifiedByCalendar("myHolidays") // but not on holidays
        .build();

    // .. schedule job with trigger

    Trigger t2 = newTrigger()
        .withIdentity("myTrigger2")
        .forJob("myJob2")
        .withSchedule(dailyAtHourAndMinute(11, 30)) // execute job daily at 11:30
        .modifiedByCalendar("myHolidays") // but not on holidays
        .build();
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值