We are deploying versions of a sidekiq worker to Cloud Foundry as part of a continuous delivery pipeline. We need to stop workers processing new jobs if they are no longer the latest version. So:
- Worker v1 is running and performing a 30 min job.
- We deploy v2 of the worker code.
- v1 should continue with current jobs but not start any new ones.
CloudFoundry won't allow us to send USR1, so we need a solution that allows the workers to determine if they are the latest version before every job starts.