每 x 周和特定日期运行的 Cron 作业

10
我希望创建一个定时任务,每x周在特定的工作日运行。例如:每2周在每个星期日和星期一的午夜运行。
cron表达式存储在每个“计划”中,我使用SQL Server 2008中的ncrontab函数生成给定cron表达式的日期。
是否有相应的表达式?或者多个表达式的组合?
我已经尝试使用以下表达式,但它总是给出相同月份的天数。
0 0 1/14 * *

2012-01-01 00:00:00.000
2012-01-15 00:00:00.000
2012-01-29 00:00:00.000
2012-02-01 00:00:00.000
2012-02-15 00:00:00.000
2012-02-29 00:00:00.000

编辑:
我正在寻找每x天/周的循环出现,而cron的主要问题是它每次都将循环重置为月份的第一天。 例如,如果我从29号开始每3天循环一次,下一个出现将是下个月的1号。

我已经放弃了cron,寻找下一个解决方案: http://www.codeproject.com/Articles/20343/Recurring-Date-Generator-with-Pattern-Coding

1个回答

2

尝试使用0 0 * * 0/2,1/2

01分别代表星期日和星期一,/2表示“每隔一次”

编辑:

经过更多对cron的研究,上述内容是不正确的,因为/2表示步长(每隔一个值),所以0/2等同于0,2,4,60/2,1/2等同于0,1,2,3,4,5,6,7,这就解释了为什么它被解释为每周的每一天。

在您上面的示例中,1/14表示从每月的第1天开始,每隔14天增加一次,得到1,15,29

话虽如此,如果这是*nix crontab,则可以通过类似于0 0 * * Sun,Mon check_if_should_run.sh && the_script_to_run.sh的方式更精细地设置计划。使用Ncrontab,我想不出设置每隔一周的情况的方法。


1
我已经尝试过了,我得到了每天的循环,从星期日开始。 如果我尝试0 0 * * 0/2,它会给我每个星期日和每两天的循环。 - Eddie Rozenblat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接