gpt4 book ai didi

python - Celery - 获取当前任务的任务 ID

转载 作者:IT老高 更新时间:2023-10-28 21:35:59 32 4
gpt4 key购买 nike

如何从任务中获取任务的 task_id 值?这是我的代码:

from celery.decorators import task
from django.core.cache import cache

@task
def do_job(path):
"Performs an operation on a file"

# ... Code to perform the operation ...

cache.set(current_task_id, operation_results)

这个想法是,当我创建任务的新实例时,我会从任务对象中检索 task_id。然后我使用任务 ID 来确定任务是否已完成。我不想希望通过 path 值跟踪任务,因为该文件在任务完成后被“清理”,并且可能存在也可能不存在。

在上面的例子中,我如何获得 current_task_id 的值?

最佳答案

更新:使用 Balthazar 对 Celery 3.1+ 的回答

@task(bind=True)
def do_job(self, path):
cache.set(self.request.id, operation_results)

请随意为他的回答点赞。

旧答案:

从 Celery 2.2.0 开始,与当前执行的任务相关的信息被保存到 task.request(它被称为 «上下文»)。所以你应该从这个上下文中获取任务 id(而不是从不推荐使用的关键字参数):

@task
def do_job(path):
cache.set(do_job.request.id, operation_results)

此处记录了所有可用字段的列表: http://celery.readthedocs.org/en/latest/userguide/tasks.html?highlight=requestcontext#context

关于python - Celery - 获取当前任务的任务 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3302320/

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