【发布时间】:2020-05-12 23:42:26
【问题描述】:
我在 schedule.rb 文件中定义了一个 rake 任务,在该月的第 15 天和最后一天早上 8 点工作。我只是想确认我是否以正确的方式做到了。请看一下并提出建议。
每月 15 日早上 8 点运行此任务
every '0 8 15 * *' do
rake 'office:reminder', environment: ENV['RAILS_ENV']
end
每月最后一天早上 8 点运行此任务
every '0 8 28-31 * *' do
rake 'office:reminder', environment: ENV['RAILS_ENV']
end
【问题讨论】:
-
0 8 28-31 * *将在 28 日、29 日、30 日和 31 日上午 8 点运行该作业。 -
@Stefan 我怎样才能让它在本月的最后一天运行?
-
AFAIK 你不能在 cron 中指定“一个月的最后一天”。一种可能的解决方法是指定
0 8 * * *,即每天早上 8 点运行任务并将当天处理移至 rake 任务中。为避免对值进行硬编码,您可以在调用任务时将它们作为参数传递,即15和-1。
标签: ruby-on-rails ruby cron scheduled-tasks whenever