Wait for other pool workers to shut down before forking up new workers
Nobody has claimed this yet.
- Dominant language
- Ruby
- Stars
- 456
- Forks
- 149
- Avg merge
- 9d 7h
- Merged PRs (30d)
- 3
Description
Re: #132 and #137, the zero-downtime approach starts a new pool while the old pool is still running. Although this is usually fine, it can lead to issues in memory-constrained environments. Our default config loader should take workers from other pools (or orphaned workers with no pool) into account.
See https://github.com/backupify/resque-pool/compare/nevans:master and the discussion on #132. I prefer reading Resque.redis.smembers("workers") to looking at ps, but ps might be more fool-proof.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the zero-downtime discussion in issues #132 and #137, then inspect the default config loader and how it uses Resque.redis.smembers("workers"). Compare the linked branch discussion with the proposed ps-based approach. Done means new worker-pool sizing accounts for workers in other pools and orphaned workers without disrupting shutdown or forking.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- redis, ruby
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100