Почистване с помощта на rq
RQ предлага методи за правене на всяка опашка празна:
>>> from redis import Redis
>>> from rq import Queue
>>> qfail = Queue("failed", connection=Redis())
>>> qfail.count
8
>>> qfail.empty()
8L
>>> qfail.count
0
Можете да направите същото за test
опашка, ако все още я има.
Почистване с помощта на rq-dashboard
Инсталирайте rq-табло:
$ pip install rq-dashboard
Започнете:
$ rq-dashboard
RQ Dashboard, version 0.3.4
* Running on http://0.0.0.0:9181/
Отворете в браузъра.
Изберете опашката
Щракнете върху червения бутон „Изпразване“
И сте готови.
Функция на Python Изчистване на задания
Ако стартирате твърде стар Redis, който се провали при команда, използвана от RQ, все пак може да успеете с изтриване на задания чрез код на python:
Кодът приема име на опашка, където са идентификаторите на задания.
Използвайки LPOP, ние искаме идентификатори на работа по един.
При добавяне на префикс (по подразбиране "rq:job:") към идентификатора на заданието имаме ключ, къде се съхранява заданието.
Използвайки DEL за всеки ключ, изчистваме задачата по работа в нашата база данни.
>>> 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