我在schedule.rb中定义了以下任务,该任务应该在每个月的凌晨2点运行。
every "0 2 1 * *" do
rake ":task_1"
end
我真正想要做的是每隔四个星期天运行该任务。我在whenever
gem文档中找到的所有内容都类似于every :sunday, :at => '2am'
。如果我想在凌晨2点每隔四个星期天运行一次任务,那会怎样?
答案 0 :(得分:0)
我不认为你可以用crontab形式表示。所有whenize语法都将其更改为crontab语法
答案 1 :(得分:0)
使用crontab语法无法实现此类结果。有some workarounds。
最常见的是将其配置为每月的前7天每天运行,如果不是星期日,则在脚本的顶部存在。
引用Run every 2nd and 4th Saturday of the month
本月的第一个星期六是从第一个到第七个日期的一个(也是唯一一个)日期。同样,第三个星期六是在十五和二十一之间的一个日期。 因此,只需将您的cron作业设置为每天运行一次,如果不是星期六则立即退出。
您可以随时轻松完成任务。按照指示配置cron,然后在rake任务检查中配置cron,如果日期不是星期日则配置exit from the task
Date.today.sunday?