对于使用石英的下面的cronschedule应该是什么cronExpression

时间:2016-01-01 14:39:01

标签: quartz-scheduler cronexpression

我正在尝试Quartz并且能够为以下场景创建正确的表达式

1.Job在上午7:30至晚上8点之间每60分钟运行一次

2.Job在上午8点到晚上8点之间每隔40-80分钟(随机)运行

感谢。

1 个答案:

答案 0 :(得分:1)

  1. 最好使用DailyTimeIntervalTrigger,它将用于此类计划。有关用例的DailyTimeIntervalTrigger属性示例,请参阅随附的屏幕截图。
  2. Example of DailyTimeIntervalTrigger to execute job every 60 minutes between 7:30am and 8pm.

    1. 在Quartz中,无法创建以随机间隔执行作业的静态触发器。但是,您可以在其execute方法中动态重新安排作业。基本上你需要创建一个在早上8点执行你的工作的CronTrigger,在你的工作实现类中你将创建一个新的触发器(可能是一个SimpleTrigger)来执行你的工作:
    2.   

      current_execution_start_time + random_value_between(40,80)分钟

      您需要检查计算的下一个开始时间是否不超过晚上8点。如果是这样,您将跳过触发器创建。

      或者你可以制作一些Quartz作业链框架,它允许你将你的作业链接到自己,同时允许你动态计算目标作业的开始时间。例如,我们的产品QuartzDesk可以轻松处理此问题。