gpt4 book ai didi

python - 如果我只有任务 ID,我可以获得 celery 任务的参数吗?

转载 作者:太空狗 更新时间:2023-10-30 00:05:21 45 4
gpt4 key购买 nike

如果我有原始任务,我可以从 task.request.args 获取参数,但是如果我只有任务 ID,有没有办法获取参数?看起来没有办法从 AsyncResult 对象中获取它们,据我所知,没有办法重新创建任务。

我想这样做是因为我有一个前端轮询后端以获取任务更新,如果它可以显示任务参数,那将会很有用。鉴于参数存储在代理中,这应该是可能的,至少当任务处于挂起状态时。

当然还有其他方法可以做到这一点,但这是一种干净的做事方式。

最佳答案

如果任务处于挂起状态或当前正在执行,您可以看到任务的参数。最简单的方法是使用 celery inspect 方法。

from celery.task.control import inspect
i = inspect()
active_tasks = i.active()
reserved_tasks = i.reserved()
scheduled_tasks = i.scheduled()

您可以遍历它们并通过使用任务 ID,您可以像这样获取所有任务详细信息

{'acknowledged': True,
'args': '(1000,)',
'delivery_info': {'exchange': '',
'priority': 0,
'redelivered': None,
'routing_key': 'celery'},
'hostname': 'celery@pavilion',
'id': '30d41ba2-3e71-49ce-8e7d-830ba1152256',
'kwargs': '{}',
'name': 't.wait',
'time_start': 1007.945882783,
'type': 't.wait',
'worker_pid': 10560}

或者,你也可以从broker中读取数据,反序列化得到任务agruments。

关于python - 如果我只有任务 ID,我可以获得 celery 任务的参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43093919/

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