是否可以创建一个每两天运行一次的Cron Expression并忽略周末?我想要实现的基本上是这个表达式0 0 9 1/2 * ?
但忽略了周末。我在以下网站http://www.cronmaker.com/
它必须有48小时的间隔。
谢谢!
答案 0 :(得分:1)
我认为您可以安全地使用单个CronTrigger,您需要做的就是将触发器与排除周末的Quartz Calendar相关联。 Quartz发行版附带了多个Calendar实现。您可以查看允许您排除特定工作日的WeeklyCalendar。
提供cron表达式为:0 0 9 1/2 * ?,你的工作将在星期一,星期三,星期五,(太阳将被忽略),星期二,星期四,(星期六将被忽略),星期一,。 ..
我认为这应该有效。你也可以尝试CalendarIntervalTrigger重复间隔unit = day,重复间隔= 2以及排除周末的同一个日历。
答案 1 :(得分:0)
我还有另一个答案。也许更简单。
基本上在Quartz中你有三步来完成一项工作:
如果你想使用你的表达式(例如:0 0 9 1/2 * ?
)但忽略周末:
org.quartz.TriggerListener
,执行您不希望触发器触发周末的规则。 org.quartz.TriggerListener
是一个可以实现的接口,用于添加其他触发器和作业的规则(请参阅http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/TutorialLesson07)
您必须使用TriggerListener#vetoJobExecution
方法来实现您的指定规则