resque-pool
resque-pool copied to clipboard
release 1.0.0 and follow semver
Although we claim semver, we still don't have a version 1.0.0 (which is required for semver). :)
If everything goes well with the RC I pushed last night, I'll make that 0.5.0 next Tuesday. I've held off on v1.0.0 because of the many warts, but since I've been using this in production (as-is) for several years, I think those warts aren't enough to prohibit a first release.
What will hold off a public release is if there is if there are any backwards compatible changes that "need" to be made. I'd rather make them now than make a 1.0 release that is only supported for a couple of weeks/months (or backport bugfixes).
If there are no backwards-incompatible changes to be made, I'll just rename 0.5.0 as 1.0.0 a week or so after 0.5.0 is released.
In particular, I'd like to analyze the most significant or longest lived forks and see if there's anything we need to merge from them that might impact backwards compatibility. If so, let's merge them before 1.0.0. If not, we can merge them for 1.1 or 1.2.
After a quick perusal of the fork-network (most of which have been inactive for over a year), these seem to be the most significant branches that haven't sent in pull requests (and some that have):
- [ ] https://github.com/backupify/resque-pool/compare/nevans:master...master
- mostly @haruska, also @nirvdrum, @ericalexander, @bpovlich, @james-lawrence
- [ ] https://github.com/ShippingEasy/resque-pool/compare/nevans:master...deploy @joshuaflanagan and @brasic
- [ ] https://github.com/PeopleAdmin/resque-pool/compare/nevans:master...deploy (and other branches)
- @joshuaflanagan, @lwoodson, @mattdbridges
- [ ] https://github.com/jonleighton/resque-pool/compare/nevans:master...hooks @jonleighton
- [ ] https://github.com/mcwiklinski/resque-pool/compare/nevans:master...master @mcwiklinski
- [ ] https://github.com/AF83/resque-pool/compare/nevans:master...af83 @spk and @nono
- [ ] https://github.com/optimis/resque-pool/compare/nevans:master...drb @uchouhan
- [ ] https://github.com/optimis/resque-pool/compare/nevans:master...v3 @uchouhan
- [ ] https://github.com/maxdunn210/resque-pool/compare/nevans:master...master @maxdunn210
- [ ] https://github.com/ono/resque-pool/compare/nevans:master...master @ono
- [ ] What other significant forks are we missing?
This is not a commitment to merge in every single change they've made (we might want to make their changes easy to do as plugins or configuration rather than core part of resque-pool
). It's a commitment to research them for backwards incompatibility, and plan the shortest course to semver 1.0.0 (that won't require us to release 2.0.0 in order to support what these forks are doing).
I'm unsure if backupify is still using resque-pool. That said, those changes to ensure you don't 2x your worker count on restart are probably still valuable to those using resque.
Thanks for the heads-up. We wanted to monitor memory usage of each worker processes with monit. Monit requires pid file and my patch gives the sequential name like resuque-pool.worker.1.pid
, resuque-pool.worker.2.pid
... to pid files. It also considers when a worker process gets killed and resque-pool spawn a process again. In that case, it has to rewrite the existing pid file instead of creating a new one.
The reasons I didn't send PR were:
- implementation is hacky
- the use case is limited so I supposed that you didn't want to maintain
Besides we are also sunsetting a sub-system which is currently using it. So please don't worry about my fork.
The significant work in the PeopleAdmin/ShippingEasy forks has already been submitted as a PR: https://github.com/nevans/resque-pool/pull/85
I still think that PR has widespread value and should be pulled in. We are still actively using our forks.
On Tue, Feb 3, 2015 at 4:48 PM, Tatsuya Ono [email protected] wrote:
Thanks for the heads-up. We wanted to monitor memory usage of each worker processes with monit. Monit requires pid file and my patch gives the sequential name like resuque-pool.worker.1.pid, resuque-pool.worker.2.pid... to pid files. It also considers when a worker process gets killed and resque-pool spawn a process again. In that case, it has to rewrite the existing pid file instead of creating a new one.
The reason I didn't send PR was:
- implementation is hacky
- the use case is limited so I supposed that you didn't want to maintain
Besides we are also sunsetting a sub-system which is currently using it. So please don't worry about my fork.
— Reply to this email directly or view it on GitHub https://github.com/nevans/resque-pool/issues/120#issuecomment-72752839.
The most important of these branches (custom config loader) was merged and released in 0.6.0.rc1
. Please help test it (and the other changes) out, if you can.
I'll try to get this release deployed soon, to test. For what its worth, the custom config loader code has been running in production at 2 different companies for over a year. One company uses the custom config loader feature, and the other relies on the default yml file config, and both scenarios have been running fine with that code.
Sorry for being nosy, but how that custom config loader would benefit the mass?
@phuongnd08 A lot of teams are constrained by the static yaml configuration. See https://github.com/nevans/resque-pool/pull/69, https://github.com/nevans/resque-pool/pull/62, and https://github.com/nevans/resque-pool/pull/99 as some examples of people trying to work around the static config. The custom config loader offers an extension point to solve all of those problems, without requiring resque-pool to take on code specific to those solutions.
Thank you. Perhaps I could use this to tackle #136
Just to clear thing up: If number of worker assigned to a queue is currently 1, on a configuration reload I set it to 0, would it terminate the current executing task or would it wait until the task completed?