delayed job - Heroku delayed_job workers killed during deployment -


on heroku, use delayed_job run asynchronous tasks. until git push heroku master , heroku environment kills worker threads in-process.

the issue here jobs never re-queued since delayed_job table in db shows them still locked , running, though workers used servicing them long dead.

how prevent situation occurring? i'd heroku wait delayed jobs in progress complete or error out before closing down, or @ least terminate them , allow new worker assigned them once server comes post-reboot changes being applied update.

looks can configure dj handle sigterm , mark in-progress jobs failed (so they'll restarted again):

use setting throw exception on term signals adding in initializer:

delayed::worker.raise_signal_exceptions = :term 

more info in answer: https://stackoverflow.com/a/16811844/1715829