轨道中的计时器或我如何在特定时间发生某些事情

时间:2011-12-16 19:11:14

标签: ruby-on-rails-3 timer

我想让某个控制器的动作在某个时间做某事(对于实例,在新的一年发送用户电子邮件

无论用户是否进入网站,我都希望能够完成。

导轨中的计时器是否有这样的宝石?

1 个答案:

答案 0 :(得分:1)

您可以查看编写和部署whenever作业的cron gem,这样您就可以在需要时执行所需的任务,例如:

every 3.hours do
  runner "MyModel.some_process"       
  rake "my:rake:task"                 
  command "/usr/bin/my_great_command"
end

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

every :hour do # Many shortcuts available: :hour, :day, :month, :year, :reboot
  runner "SomeModel.ladeeda"
end

every :sunday, :at => '12pm' do # Use any day of the week or :weekend, :weekday 
  runner "Task.do_something_great"
end

every '0 0 27-31 * *' do
  command "echo 'you can use raw cron syntax too'"
end

此示例取自每当gem文档,希望这会有所帮助。