Skip to content

Conversation

cooperaj
Copy link

In a situation where the worker fails to be able to communicate with it's job provider i.e. Redis it will fail with an exception. The only way to get it to resolve a new Redis server (assuming some sort of HA setup) is to restart the worker - this is because PHP, rather helpfully, caches name lookups.

By breaking out fetching of jobs from doing of jobs you're able to catch that possible case and cause the worker to exit (and be restarted by whatever scheduling tool you're using). In our situation this results in a new resolution to the revived/hot spare Redis instance and a working queue.

@coveralls
Copy link

coveralls commented Oct 19, 2018

Coverage Status

Coverage increased (+11.3%) to 100.0% when pulling cc6db26 on UniversityOfNottingham:feature/0.2-make-worker-resiliant into ed2cbf9 on maxbrokman:0.2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants