如何从django celery任务中获取数据
How to get data from django celery tasks
# In tasks.py file
from __future__ import absolute_import
from celery import shared_task
@shared_task
def add(x, y):
return x + y
# In views.py
def home(request):
context = {
'add': tasks.add.delay(5,2)
}
return render(request, "home.html", context)
# In home.html
<h1>{{ add }}</h1>
而不是 7 出现在 home.html 上,我得到了看起来像 this:313e-44fb-818a-f2b2d824a46b 的乱码。如何从我的 tasks.py 文件中获取数据?
只需更改:
def home(request):
context = {
'add': tasks.add.delay(5,2)
}
return render(request, "home.html", context)
至:
def home(request):
context = {
'add': tasks.add.delay(5,2).get()
}
return render(request, "home.html", context)
这也会被 Celery 处理。
Ading .delay()
您将任务设置为异步并接收 task_id
。
文档中的更多信息:Calling Tasks
# In tasks.py file
from __future__ import absolute_import
from celery import shared_task
@shared_task
def add(x, y):
return x + y
# In views.py
def home(request):
context = {
'add': tasks.add.delay(5,2)
}
return render(request, "home.html", context)
# In home.html
<h1>{{ add }}</h1>
而不是 7 出现在 home.html 上,我得到了看起来像 this:313e-44fb-818a-f2b2d824a46b 的乱码。如何从我的 tasks.py 文件中获取数据?
只需更改:
def home(request):
context = {
'add': tasks.add.delay(5,2)
}
return render(request, "home.html", context)
至:
def home(request):
context = {
'add': tasks.add.delay(5,2).get()
}
return render(request, "home.html", context)
这也会被 Celery 处理。
Ading .delay()
您将任务设置为异步并接收 task_id
。
文档中的更多信息:Calling Tasks