It might happen that all of the worker threads (see perf branch) in a worker crashes and no work is being done. There are two ways to solve this:
If all the worker threads crash, exit the worker with exit code 1 to force a restart by the underlying process manager (e.g. Heroku)
Restart individual worker threads
Based on complexity, the first approach is a lot faster to implement. Based on "platform agnosticism" solution number 2 might be better, since not everyone who runs Apiary might have an underlying process manager that auto-restarts dead processes. However, I don't think the time and effort to support that case is worth it.
It might happen that all of the worker threads (see
perf
branch) in a worker crashes and no work is being done. There are two ways to solve this:Based on complexity, the first approach is a lot faster to implement. Based on "platform agnosticism" solution number 2 might be better, since not everyone who runs Apiary might have an underlying process manager that auto-restarts dead processes. However, I don't think the time and effort to support that case is worth it.