redis 如何在celery中获取所有任务的id

f4t66c6m  于 2023-05-05  发布在  Redis
关注(0)|答案(1)|浏览(256)

我应该在不知道任务ID的情况下获取所有任务及其状态的列表。我认为它可以与result_backend一起工作,但我不明白它是如何工作的。救命啊!
我上网查了一下,试着编码。

jq6vz3qz

jq6vz3qz1#

Celery有监控/检查API,可以让您获得这种能力。您可以在Python程序中使用它,也可以从Celery CLI使用它
当你运行像celery -A your.celery.app inspect --help这样的程序时,你会得到这样的结果(用合适的参数改变your.celery.app):

Usage: celery inspect [OPTIONS] {report|conf|query_task|clock|ping|stats|sched
                      uled|reserved|active|revoked|registered|objgraph|memsamp
                      le|memdump|active_queues}

  Inspect the worker at runtime.

  Availability: RabbitMQ (AMQP) and Redis transports.

Remote Control Options:
  -t, --timeout FLOAT             Timeout in seconds waiting for reply.
  -d, --destination COMMA SEPARATED LIST
                                  Comma separated list of destination node
                                  names.
  -j, --json                      Use json as output format.

Options:
  --help  Show this message and exit.

正如你所看到的,有很多选择,但你问的最重要的是:

  • scheduled -列出计划任务
  • reserved -列出保留任务
  • active -列出执行此CLI命令时正在运行的任务
  • revoked -列出已撤销的任务

我鼓励你去熟悉其他人,因为他们都是非常有用的。
最后,请记住,监控/检查API只适用于两种代理类型- Redis和RabbitMQ。如果你使用其他东西,你不能使用API。

相关问题