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 关注
- 549 浏览
添加回答
举报