在我的views.py
中,我正在使用芹菜来运行tasks.py
中存在的共享任务。
这是我从views.py
打电话的方式
task = task_addnums.delay()
task_id = task.id
tasks.py
看起来像
from celery import shared_task
from celery.result import AsyncResult
@shared_task
def task_addnums():
# print self.request.id
# do something
return True
现在,正如我们所看到的,我们已经有来自task.id
task_idviews.py
.但是,假设我想从shared_task本身获取任务 id,我该怎么做?目标是从task_addnums
本身获取任务 ID,以便我可以使用它来传递到其他函数中。 考虑到第一个参数是self
,我尝试使用self.request.id
.但它没有奏效。
已解决。
这个答案是一颗宝石 在芹菜任务中获取task_id
您可以执行function_name.request.id
来获取任务 ID。
来自芹菜的current_task
将获得当前任务。像这样编写代码:
from celery import shared_task, current_task
@shared_task
def task_addnums():
print(current_task.request)
# do something
return True