每当宝石使用时,每四个星期天执行一次Rake任务

时间:2013-12-11 15:30:44

标签: ruby-on-rails ruby cron whenever

我在schedule.rb中定义了以下任务,该任务应该在每个月的凌晨2点运行。

every "0 2 1 * *" do
  rake ":task_1"
end

我真正想要做的是每隔四个星期天运行该任务。我在whenever gem文档中找到的所有内容都类似于every :sunday, :at => '2am'。如果我想在凌晨2点每隔四个星期天运行一次任务,那会怎样?

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?