Hacker News new | ask | show | jobs
by benmanns 4666 days ago
How do you handle when Heroku sends a SIGTERM to kill your process? I couldn't find a way to preempt running workers, so everything running on Heroku has to finish within 10 seconds or you can lose it.
2 comments

Hey Ben,

Author of go-workers here. On SIGTERM, I stop accepting new work, and wait for all running workers to finish before halting.

If workers take longer than the 10 seconds Heroku gives you, go-workers uses reliable queueing (using http://redis.io/commands/brpoplpush) so the job will run again next time you start up the process.

Okay, cool. I do the same thing on the polling side, but don't use reliable queueing yet. I think that is probably the best way to handle the failures.
I'm not sure tbh, we haven't had that problem yet.