我想创建一个每x周和特定工作日运行的cron作业。 例如:每周日和周一午夜每两周运行一次。
为每个“计划”存储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的主要问题,就是它每次都会将复发重置为每月的第一天。
例如,如果我每隔3天开始29日复发,则下一次发生将是下个月的第1天。
我忽略了cron的下一个解决方案: http://www.codeproject.com/Articles/20343/Recurring-Date-Generator-with-Pattern-Coding
答案 0 :(得分:1)
尝试0 0 * * 0/2,1/2
0
和1
是星期日和星期一,/2
是'彼此'
修改强>
在对cron进行更多研究后,上述内容不正确,因为/2
表示该步骤(每隔一个其他值),因此0/2
相当于0,2,4,6
,而0/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,我想不出一种方法来设置每隔一周的场景。