如何从当前运行的共享任务本身获取芹菜django中的任务ID?

如何从当前运行的共享任务本身获取芹菜django中的任务ID?,django,django-views,celery,Django,Django Views,Celery,在我的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

在我的
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
现在,我们可以看到,在
views.py
中已经有了来自
task.id
的task\u id。但是,如果我想从共享任务本身获取任务id,我该怎么做呢?目标是从
task\u addnums
本身获取任务id,以便我可以使用它传递到其他函数中。 考虑到第一个参数是
self
,我尝试使用
self.request.id
。但它不起作用

已解决

这个答案是一颗宝石

您可以执行
函数\u name.request.id
来获取任务id。

已解决

这个答案是一颗宝石


您可以执行
函数\u name.request.id
来获取任务id。

来自芹菜的当前任务将获取当前任务。代码如下:

from celery import shared_task, current_task

@shared_task
def task_addnums():
    print(current_task.request)
    # do something
    return True

来自芹菜的当前任务将获得当前任务。代码如下:

from celery import shared_task, current_task

@shared_task
def task_addnums():
    print(current_task.request)
    # do something
    return True

您无法从
task\u addnums
获得它-这是一个简单的函数。您需要以某种方式将该id存储在缓存中,或者在上下文中作为参数传递。我如何将其作为参数传递。它在调用delay()后被赋值。您有任何想法@chiefiry您需要显示更多视图以及您希望传递任务的位置。idI需要
task id
可从
task\u addnums
本身访问。原因是,因为我将把任务id传递给一个函数,我从
task\u addnums()
调用该函数。因此,views.py中的task_id是无用的@ChiefirI解决了它,helps您无法从
task_addnums
中获取它-这是一个简单的函数。您需要以某种方式将该id存储在缓存中,或者在上下文中作为参数传递。我如何将其作为参数传递。它在调用delay()后被赋值。您有任何想法@chiefiry您需要显示更多视图以及您希望传递任务的位置。idI需要
task id
可从
task\u addnums
本身访问。原因是,因为我将把任务id传递给一个函数,我从
task\u addnums()
调用该函数。因此,views.py中的任务_id是无用的@ChiefirI解决了它,有帮助