我需要一个特定的Quartz cron表达式

时间:2016-11-28 08:27:04

标签: cron quartz-scheduler

我需要一个cron表达式,每隔一天就会触发一次,不包括周末。 例: 时间表从星期一开始。时间表以下列方式继续:

  • (第1周)周一>周三>周五
  • (第2周)周二>周四
  • (第3周)周一>周三>周五
  • (第4周)周二>周四

这可能只使用cron吗?我知道解决方案是每天运行它,当它在周末运行时“手动”阻止它运行。

2 个答案:

答案 0 :(得分:0)

也许会有所帮助......

* * 1-31/2 * mon-fri command.sh

这意味着,“每个第二天的每一分钟从1到31以及从星期一到星期五的每一天。”

https://crontab.guru/# _ _1-31 / 2 _ * _周一至周五

http://corntab.com/?c= _ _1-31 / 2 _ * _ MON-FRI

(未在真机上试过)

答案 1 :(得分:0)

我会考虑扩展表达式格式,因此您的查询将如下所示:

S M H  DoM  M     DoW     Y
0 0 10 1-31 * 1#1,3#1,5#1 *

此查询可以理解为:每个月的每天10:00:00重复一周中的某一天(星期一,星期三,星期五),这是一个月的第一周。

你会定义这样的4个查询(我认为1合1#3只是星期一,3是月份的星期数):

1.) 0 0 10 1-31 * 1#1,3#1,5#1 *
2.) 0 0 10 1-31 * 2#2,4#2 *
3.) 0 0 10 1-31 * 1#3,3#3,5#3 *
4.) 0 0 10 1-31 * 2#4,4#4 *

运行相同的命令。但由于大多数评估者的限制(我猜),它不会起作用。

如果您熟悉.NET,我会使评估者正确处理这些表达式,但它只是评估者,所以您只收到的事件是您的事件应该发生的日期。 sheduler没有与之相结合的工作。 Click