antirez / disque

Disque is a distributed message broker
BSD 3-Clause "New" or "Revised" License
8.01k stars 538 forks source link

[Request] Iterate/Peek delayed jobs #180

Open jabinb opened 8 years ago

jabinb commented 8 years ago

Currently there's no way to find jobs that have been queued with a delay using JSCAN or QPEEK. Similarly QSTAT on a queue containing only delayed jobs runs null, but I think this is intentional?

My use case is that I want to sometimes execute jobs earlier than their set delays. As a work around I'm maintaining a list of delayed job ids in my application code for when I need to process jobs immediately and using SHOW to retrieve the job then ACKJOB as normal to mark it processed.

It would be good if QPEEK and JSCAN had an option to include or show only delayed jobs in their response so it would be possible to iterate and dequeue them if they're no longer necessary or process them immediately.

A possible implementation may be adding a new job state delayed, which would allow JSCAN to query for it.

jordaaash commented 8 years ago

+1, being able to run a job at a desired time is an important feature for any job queue. A delayed state would allow it exist in the queue it belongs in. Where does a delayed job go if not the queue? Does it receive the same replication guarantees?

dolzenko commented 6 years ago

Is it still not possible to list delayed jobs?