从Ruby Script重新启动Heroku延迟作业工作者

时间:2012-08-20 13:10:19

标签: ruby-on-rails ruby ruby-on-rails-3 heroku delayed-job

如果可能的话,从Rails应用程序本身重启Heroku(delayed_job)工作者的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

您使用heroku ps:scale worker=x扩展工作人员,对吗?

将其缩小为0并再次缩小为原始值将重新启动您的工作人员。

您可以使用heroku ruby​​客户端以编程方式执行此操作,请参阅example和(相当差)documentation

此代码剪切可能会有所帮助:

heroku = Heroku::Client.new(ENV['HEROKU_USER'], ENV['HEROKU_PASS'])
heroku.ps_scale(ENV['HEROKU_APP'], :type=>'worker', :qty=>0)
heroku.ps_scale(ENV['HEROKU_APP'], :type=>'worker', :qty=>1)