如何从django芹菜任务中获取数据

时间:2015-08-25 23:09:16

标签: python django scheduled-tasks celery

# 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上,我看起来像这样的giberish:313e-44fb-818a-f2b2d824a46b。如何从tasks.py文件中获取数据?

1 个答案:

答案 0 :(得分:3)

简单地改变:

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

doc:Calling Tasks

中的更多信息