如何从当前运行的共享任务本身获取芹菜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解决了它,有帮助