10

我想创建一个每 x 周和特定工作日运行的 cron 作业。例如:在每周日和周一的午夜每 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 的主要问题是它每次都将重复频率重置为每月的第一天。例如,如果我每 3 天在 29 日开始重复,则下一次将是下个月的第一天。

我已经忽略了下一个解决方案的 cron:http: //www.codeproject.com/Articles/20343/Recurring-Date-Generator-with-Pattern-Coding

4

1 回答 1

2

尝试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,我想不出一种方法来设置每隔一周的场景。

于 2012-03-13T20:11:54.810 回答