如果可能的话,从Rails应用程序本身重启Heroku(delayed_job)工作者的最佳方法是什么?
答案 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)