antirez / disque

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

Should I exec "FASTJOB" or "ACKJOB" after I exec "GETJOB" ? #208

Open gfYaya opened 6 years ago

gfYaya commented 6 years ago

I add a job with "ADDJOB" in the disque. localhost:7711> addjob test "yaya" 10000 the scrreen console that: D-351c426f-BAZ7uyDERGtv7ybjIz/19a1A-05a1

then I exec the getjob ,I get this job. I exec the command: qlen the result returns 0 or empty

Whether I need to exec the "FASTJOB" or "ACKJOB" to GC this channel in disque after I exec "GETJOB"?

gfYaya commented 6 years ago

I need to modify the disque config properties?

gfYaya commented 6 years ago

I try that,I can get the job again.After I exec "ADDJOB" , I exec the "GETJOB" command,in few seconds ,the result of "QLEN" is 0 , after a while , exec "QLEN" ,the result is 1. I use the "ENTRY 10000" param as I exec "ADDJOB",but it doesn't work. I have seen the document several times. Please forgive me that my English is so broken,I really don't know what makes this matter.

mathieulongtin commented 6 years ago

Your worker should do this:

If you don't call ACKJOB or FASTACK, disque assumes the worker failed, and returns the job to the queue after five minutes. You can change that with the RETRY argument to ADDJOB.

gfYaya commented 6 years ago

@mathieulongtin Thank you for your help .I saw what I need to do , and how to control the jobs of the disque.And I tried this , "ADDJOB $queuename $job 0 RETRY 5",the job will get back quickly.But ,the job recured less then 5 seconds. The intervals are mostly between 1 and 2 seconds. It's really strange....