我探索并发现石英cron表达式:
sec min hour day_of_month month day_of_week year,
我们可以提供day_of_month
或day_of_week
,但不能同时提供这两者,因为它尚未实施。
我希望在每个two weeks
之后以及星期五,星期四,星期五中午12点运行调度程序,然后我该如何实现。
提供以下cron表达式将不起作用:
* * 12 1/14 * MON, THU, FRI *
因为我们无法同时提供day_of_week and day_of_month
。
所以,请告诉我是否存在其他方式,其他库等。我不想在业务逻辑中处理它,而只是简单地使用cronexpression
就足以满足我的需求。 / p>
答案 0 :(得分:0)
试试这个网站https://crontab.guru/它可能对你有帮助..
或http://www.corntab.com/?c=0_12_ _ _1,4,5
对于你的问题,这将是那个表达
0 12 * * 1,4,5
并且为了您的理解:
+---------------- minute (0 - 59)
| +------------- hour (0 - 23)
| | +---------- day of month (1 - 31)
| | | +------- month (1 - 12)
| | | | +---- day of week (0 - 7) (Sunday=0 or 7)
| | | | |
0 12 * * 1,4,5 command to be executed
<强>输出:强>
“At 12:00 on Monday, Thursday, and Friday.”
next at 2016-12-15 12:00:00
then at 2016-12-16 12:00:00
then at 2016-12-19 12:00:00
then at 2016-12-22 12:00:00
then at 2016-12-23 12:00:00
.....
答案 1 :(得分:0)
据我了解,您需要这样的查询:
0 0 12 1-7,14-21 * MON,THU,FRI *
这意味着,您将从月的第一天到第七天,从一个月的十四天到二十一天运行您的程序,但仅限于星期几,星期四或星期五。
所以下一次出现的时间是:
2016-12-19T12:00:00+01:00
2017-01-02T12:00:00+01:00
2017-01-05T12:00:00+01:00
2017-01-06T12:00:00+01:00
....
另一个问题是,如果评估者能够正确处理这样的查询,你必须检查它。