3 回答

TA貢獻1858條經驗 獲得超8個贊
我正在使用rake方法(由heroku支持)
帶有一個名為lib / tasks / cron.rake的文件。
task :cron => :environment do
puts "Pulling new requests..."
EdiListener.process_new_messages
puts "done."
end
要從命令行執行,這只是“ rake cron”。然后可以根據需要將此命令放在操作系統cron / task調度程序上。
更新這是一個相當古老的問題和答案!一些新信息:
此后,我引用的heroku cron服務已由Heroku Scheduler取代
對于頻繁執行的任務(尤其是要避免Rails環境啟動成本的情況),我的首選方法是使用系統cron調用腳本,該腳本將(a)撥一個安全/私有webhook API在后臺調用所需的任務或(b)將任務直接放入您選擇的排隊系統中

TA貢獻1773條經驗 獲得超3個贊
我已經在非常依賴計劃任務的項目上使用了非常流行的“ 每時每刻”功能,這很棒。它為您提供了不錯的DSL來定義計劃的任務,而不必處理crontab格式。從自述文件:
只要有Ruby gem可以提供清晰的語法來編寫和部署cron作業。
自述文件中的示例:
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
- 3 回答
- 0 關注
- 579 瀏覽
添加回答
舉報