我怎样才能在轨道上每个月的第4个星期天触发一个rake任务?

时间:2015-09-29 05:21:58

标签: ruby-on-rails schedule rake-task whenever

我正在进行佣金任务。我希望计划在每个月的每个第4个星期日运行该任务。我正在使用宝石。如何在config/schedule.rb中定义逻辑,以便它在Rails中每个月的第4个星期日运行?请帮帮我。

这是我的佣金任务app/lib/tasks/my_task.rake

task :do_something => :environment do

end

这是config/schedule.rb

中的代码
every :sunday, :at => '12pm' do 
  runner "Employee.make_checkin_out"
end

我怎样才能改变上述逻辑?

1 个答案:

答案 0 :(得分:1)

whenever gem提供了生成cron作业的工具。这是rake任务的调度程序。您可以定义类似

every 1.month, :at => '4:30 am' do
  runner "MyModel.task_to_run_at_four_thirty_morning_every_month"
end

如果你想要每个月的第一个星期日,请使用cron编辑器,如

0 12 1-7 * * [ "$(date '+\%a')" = "Sun" ]