「Delayed Jobsが暴走しているっtっっっt(;ω;)再起動しなければっっt」なんて時のためのメモです。
普通に「heroku restart」 すると楽なのですが、rails側も再起動されてしまうので、ちょっと避けたいですよね。
今回の方法は、任意のプロセスのみ再起動させる方法です。
まず、起動しているプロセスを確認します。
$ heroku ps
=== web: `bundle exec rails server -p $PORT`
web.1: up for 15h
web.2: up for 15h
=== worker: `bundle exec rake jobs:work`
worker.1: up for 15h
このうち、worker.1 のみを再起動します。
$ heroku restart worker.1
Restarting worker.1 process... done
これでおkです。
ちなみにherokuでは、下記のタイミングで自動的に再起動してくれます。さすが。
- コードがデプロイされたとき
- configを変更したとき
- add-onを変更したとき
- メモリをたくさん使ったとき(512MBを3回だそうです)
なので、普段は再起動を意識する必要はないかと思いますが、ここぞという時に。
参考URL: