I'm using RQ, and I have a
RQ offers methods to make any queue empty:
>>> from redis import Redis >>> from rq import Queue >>> qfail = Queue("failed", connection=Redis()) >>> qfail.count 8 >>> qfail.empty() 8L >>> qfail.count 0
You can do the same for
test queue, if you have it still present.
$ pip install rq-dashboard
$ rq-dashboard RQ Dashboard, version 0.3.4 * Running on http://0.0.0.0:9181/
Open in browser.
Select the queue
Click the red button "Empty"
And you are done.
If you run too old Redis, which fails on command used by RQ, you still might sucess with deleting jobs by python code:
The code takes a name of a queue, where are job ids.
Usilg LPOP we ask for job ids by one.
Adding prefix (by default "rq:job:") to job id we have a key, where is job stored.
Using DEL on each key we purge our database job by job.
>>> import redis >>> r = redis.StrictRedis() >>> qname = "rq:queue:failed" >>> def purgeq(r, qname): ... while True: ... jid = r.lpop(qname) ... if jid is None: ... break ... r.delete("rq:job:" + jid) ... print jid ... >>> purge(r, qname) a0be3624-86c1-4dc4-bb2e-2043d2734b7b 3796c312-9b02-4a77-be89-249aa7325c25 ca65f2b8-044c-41b5-b5ac-cefd56699758 896f70a7-9a35-4f6b-b122-a08513022bc5