为了账号安全,请及时绑定邮箱和手机立即绑定

铁路的Cron工作:最佳做法?

铁路的Cron工作:最佳做法?

慕的地10843 2019-10-14 09:30:19
在Rails环境中运行计划任务的最佳方法是什么?脚本/运行者?耙?我想每隔几分钟运行一次任务。
查看完整描述

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)将任务直接放入您选择的排队系统中


查看完整回答
反对 回复 2019-10-14
?
慕容3067478

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


查看完整回答
反对 回复 2019-10-14
  • 3 回答
  • 0 关注
  • 507 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信