gpt4 book ai didi

python - RQ - 清空和删除队列

转载 作者:IT王子 更新时间:2023-10-29 05:55:00 29 4
gpt4 key购买 nike

我正在使用 RQ ,并且我有一个包含数千个项目的 failed 队列,以及我不久前创建的另一个 test 队列用于测试,现在是空的且未使用。我想知道如何从 failed 队列中删除所有作业,并完全删除 test 队列?

很抱歉这个基本问题,但我在 RQ docs 中找不到这方面的信息,我对这两个都是全新的 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-dashboard
RQ Dashboard, version 0.3.4
* Running on http://0.0.0.0:9181/

在浏览器中打开。

选择队列

点击红色按钮“清空”

大功告成。

Python 函数清除作业

如果你运行的 Redis 太旧,RQ 使用的命令失败,你仍然可能成功删除python 代码的工作:

代码采用队列名称,其中是作业 ID。

我们使用 LPOP 逐一请求作业 ID。

将前缀(默认情况下为“rq:job:”)添加到作业 ID 我们有一个键,作业存储在哪里。

在每个键上使用 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

关于python - RQ - 清空和删除队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24915181/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com