[英]How do you call a method every hour in Rails?
您應該使用cron作業完成此類任務。
我建議你使用Whenever寶石。
請參閱此處的railscast: http ://railscasts.com/episodes/164-cron-in-ruby
由於您已經在使用Resque,我建議使用許多可用的Resque插件之一: resque-scheduler 。 也非常好地插入Resque UI。 簡單設置,如README中所述。 還添加了很多缺少的DelayedJob內容(延遲執行)。
為什么我從whenever
切換到resque-scheduler
:
resque-loner
結合使用,如果作業花費的時間超過兩次執行之間的跨度,則可以防止雙重執行。 你可以很容易地使用每當你要求的東西,以及更多,它有一個非常好的文檔。
你可以使用這樣的語法:
every 3.hours do
runner "MyModel.some_process"
rake "my:rake:task"
command "/usr/bin/my_great_command"
end
安裝使用:
$ gem install whenever
或將其添加到您的GemFile:
gem 'whenever', :require => false
然后運行:
$ cd /apps/my-great-project
$ wheneverize .
希望這對你有所幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.