-
Notifications
You must be signed in to change notification settings - Fork 538
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
[Suggestion] Move jobs between queues, change the job body, custom metadata for a better failure handling #174
Comments
I kind of like the BURY and KICK command of Beanstalkd for that. When a job https://github.com/kr/beanstalkd/blob/v1.3/doc/protocol.txt Another option for Disque would be to stay pretty bare-boned but allow Lua On Sun, Feb 28, 2016 at 11:53 AM Revisor [email protected] wrote:
|
Lua callbacks sounds just sexy. It will allow infinite features to be added. |
Hi,
this suggestion is connected to #170 in that both concern the handling of failed jobs.
I would like to handle failed jobs as follows:
Neither of these actions are possible in Disque right now and if using a workaround - adding a new, copied job - we lose both the job ID as well as the NACK and add. delivery counters.
That's why I would like to propose four enhancements (proposals 3. and 4. are different solutions of the same problem):
Ad 3. We use the job body to store job metadata. We use metadata to work around missing features 1. and 2. - we store the original job ID as well as the total number of retries there. It could also be helpful to eg. save the exact time and reason the job has failed. This requires changing the existing job body.
Supporting custom, mutable job metadata as a first class citizen in Disque would be even better.
The point of all these suggestions is to keep the ID of a job intact throughout its lifetime while allowing for a more complex handling (delayed NACKing, moving between queues, storing extra details).
What do you think? Are the suggestions too complex? Are they useful?
The text was updated successfully, but these errors were encountered: