【问题标题】:Execute Rake task every fourth sunday using whenever gem每第四个星期日使用每当 gem 执行 Rake 任务
【发布时间】:2013-12-29 15:55:29
【问题描述】:

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

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

不过,我真正想做的是每隔四个星期天运行一次该任务。我在whenever gem-documentation 中找到的所有内容都类似于every :sunday, :at => '2am'。如果我想在每个第四个星期日凌晨 2 点运行任务,这会是什么样子?

【问题讨论】:

    标签: ruby-on-rails ruby cron whenever


    【解决方案1】:

    使用 crontab 语法是不可能达到这样的结果的。有some workarounds

    最常见的是将其配置为每月前 7 天每天运行,如果不是星期日,则在脚本顶部存在。

    引用Run every 2nd and 4th Saturday of the month

    每月的第一个星期六是从第一天到第七天的其中一个(也是唯一一个)日期。同样,第三个星期六是在十五和二十一之间的一个日期。 因此,只需将您的 cron 作业设置为在这些日子的每一天都运行,如果不是星期六,则立即退出。

    您可以随时轻松完成。按照指示配置 cron,然后在 rake 任务检查中,如果当天不是星期日,则 exit from the task

    Date.today.sunday?
    

    【讨论】:

    • 如果确实没有符号,这看起来是一个可以接受的解决方法。谢谢!
    【解决方案2】:

    我认为您不能以 crontab 形式表示。每当ize 语法所做的就是将其更改为 crontab 语法

    【讨论】:

    • 那不是答案而是评论?
    猜你喜欢
    • 1970-01-01
    • 2013-01-12
    • 2016-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多