我在用着RQ http://python-rq.org/,我有一个failed
排队有数千件物品,还有另一个test
我不久前创建的用于测试的队列现在是空的且未使用。我想知道如何删除所有作业failed
排队,然后删除test
完全排队吗?
对于基本问题表示歉意,但我在RQ docs http://python-rq.org/docs/,而且我对两者都是全新的Redis http://redis.io/和 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-仪表板:
$ pip install rq-dashboard
启动它:
$ rq-dashboard
RQ Dashboard, version 0.3.4
* Running on http://0.0.0.0:9181/
在浏览器中打开。
选择队列
点击红色按钮“清空”
你就完成了。
Python 函数清除作业
如果您运行太旧的 Redis,导致 RQ 使用的命令失败,您仍然可能成功删除
python代码的工作:
该代码采用队列名称,其中是作业 ID。
使用 LPOP,我们按 1 询问作业 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)