-
-
Notifications
You must be signed in to change notification settings - Fork 204
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
Job fuses / rapid job discard dashboard #749
Comments
@julik thanks for opening the issue! I watched the youtube video and I think it makes sense to me.
Some other thoughts:
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Working with large-ish background job setups I have seen a few common operational needs which arise from time to time. I've covered it in my talk here https://www.youtube.com/watch?v=aEVVbFn0_A4
The feature I would like to propose for GoodJob is "fusing" - discarding jobs of a certain ActiveJob class, having a certain parameter or belonging to a particular queue. A fairly common failure mode with job clusters is that one (or a few) specific types of jobs gobble up the entire queue capacity, and there is some reactive process (AWS notifications, cron scheduling, some web endpoint generating jobs etc...) which keeps adding those "poison pill" jobs into the queue. What has proven itself very useful is to have a way to temporarily discard any job of a certain shape which gets picked up for execution. Discarding-at-enqueue does not work quite well for this use case but can also be considered.
How this could work (MVP-style):
JOIN
when selecting jobs for execution. If the table contains a row (or a row with a particular value of the switch) the job does not gets selected for execution, or getsdiscard
ed immediately upon getting picked upPost-MVP you would want to add parameter matching to the "fused" jobs ("discard all
ProcessPayment
jobs foruser_id=123
).Is this something good_job would be interested in integrating if we provide an implementation?
The text was updated successfully, but these errors were encountered: