gpt4 book ai didi

celery - 你能从签名中得到一个 celery task id 吗?

转载 作者:行者123 更新时间:2023-12-05 03:32:34 26 4
gpt4 key购买 nike

我必须执行检查以查看我的 celery 任务是否已经创建,这就是为什么我每次调用 .delay() 或 apply_async() 时都试图检查 rabbitmq 队列并查找任务 ID .问题是我的代码中传递了很多签名,我不知道如何从签名中获取任务 ID。根据文档,签名对象的内容如下所示:

{'task': 'tasks.add', args=(2, 2), kwargs={}, options={}}

( https://docs.celeryproject.org/en/stable/reference/celery.html )

但这里的任务只是一个字符串,我不确定是否已经分配了 id。这是我想在我的代码中做的:

some_task_signature= task.s(parameters)
task_id = some_task_signature.task_id # I'm not sure if this is actually in the signature
if not is_task_active_or_registered(app, task_id)
some_task_signature.delay()

我正在使用部署在 Windows 10 虚拟机上的 celery 3.1.25 版和 python 3.6。

如有任何帮助,我们将不胜感激。

最佳答案

你可以设置自己的id。

task_id = uuid4()
some_task_signature = task.s(parameters).set(task_id=str(task_id))
some_task_signature.delay()
AsyncResult(task_id) # get task info later

这里有更多信息:https://github.com/celery/celery/issues/1813

关于celery - 你能从签名中得到一个 celery task id 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70446526/

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