【问题标题】:Cron expression for running rake task first Thursday of every month每月第一个星期四运行 rake 任务的 Cron 表达式
【发布时间】:2019-12-20 19:38:51
【问题描述】:

我在 Rails 应用程序中编写了以下 ruby​​ 代码:

every '20 8 1-7 * 4' do
  rake 'data_import:check_for_presence_of_file'
end

但上述 rake 任务每天都在格林威治标准时间上午 8:20 运行。是不是表达有问题?我在互联网上搜索了 cron 表达式,但我看到了相互矛盾的信息。请帮忙。

【问题讨论】:

标签: ruby-on-rails ruby cron


【解决方案1】:

我不确定 cron 是否有办法。 '20 8 1-7 * 4' 表示每月的前 7 天和星期四。相反,也许在每月的前 7 天执行此操作,并在 rails 中检查其是否为星期四:

every '20 8 1-7 * *' do
  rake 'data_import:check_for_presence_of_file' if Date.today.thursday?
end

【讨论】:

    【解决方案2】:

    这是每周星期二的正确 cron 计划:

    20 8 * * 2
    

    这里有更多细节: https://crontab.guru/#20_8___2

    在您的示例中,您使用的是1-7,这意味着每天。

    【讨论】:

    • 阅读标题。他想要每个月的第一个星期四,而不是每周一次的跑步。 1-7 表示该月的前 7 天。
    猜你喜欢
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    • 2022-01-07
    • 2013-12-29
    • 2014-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多