RQ-清空和删除队列
我正在使用RQ,我有一个failed
队列包含数千个项目,而另一个test
队列我创建了一段时间用于测试,现在已经空了并且没有使用。我想知道如何从failed
队列中删除所有作业,然后test
完全删除队列?
道歉的基本问题,但我无法在RQ文档中找到有关此信息,对于Redis和RQ来说,我都是新手…预先感谢!
回答:
使用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-dashboard:
$ pip install rq-dashboard
启动它:
$ rq-dashboardRQ Dashboard, version 0.3.4
* Running on http://0.0.0.0:9181/
在浏览器中打开。
选择队列
点击红色按钮“空”
您完成了。
Python函数清除作业
如果您运行的Redis太旧,在RQ使用的命令上失败,那么您仍然可能会通过python代码删除作业而成功:
该代码采用队列的名称,其中是作业ID。
Usilg LPOP,我们要求提供一个工作ID。
在作业ID上添加前缀(默认情况下为“ 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
以上是 RQ-清空和删除队列 的全部内容, 来源链接: utcz.com/qa/424957.html