-
-
Notifications
You must be signed in to change notification settings - Fork 199
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ordered queue handling by workers #665
Conversation
Where de-queueing will prioritize queues in order specified.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this looks great. I'm curious what happens with some random strings like +*
, but I'm happy with this. 👍🏻
I made a few suggestions/fixed-typos in the docs. I'll merge those and release this.
Thank you! Released in v3.2.0 |
Thanks @bensheldon! And thanks for the doc clarifications. I suppose Compare to if you specified |
@jrochkind agreed. I think we can ignore the edgecase semantics until someone notices 😄 |
Just an experiment, to have some concrete code to talk about, and to give me an exersize.
See: #624
Although I'm interested in it, I also understand if you ultimately think this feature is not necessary and would like to avoid it bloating the codebase. Abstractly, you can do the same thing with priorities, although it can be less convenient to do so (in some cases extremely cumbersome), and priorities don't allow you to re-shuffle how an existing queue of jobs is handled like ordered queue workers do.
I updated the benchmarking with more clear combinations of different sorting. Using the ordered queue feature does have some slowdown; I suspect it won't matter for good_job-scale loads, and also any performance hit from this feature will only be if you use the feature, it shouldn't effect you if you don't.
If I run the benchmark multiple times, sometimes I get some differences between examples that other times
same-ish
for. Here are two examples.