簡體   English   中英

如何在 Django 視圖中導入 celery 任務

[英]how to import celery tasks in django views

我正在用 django 學習芹菜。 我正在嘗試使用 django 和 celery 創建一個簡單的加法項目。 我用 django 創建了一個簡單的 webapp。 在 index.html 模板中,我有一個包含 2 個輸入字段的表單。 第一個輸入字段采用x value (加法的第一個數字)。 第二個輸入字段采用y value (加法的第二個數字)。 提交表單后,我希望 celery 任務運行。 and the app name is django 項目名稱為 ,應用名稱為

celery 任務如下

主應用程序/任務.py

from celery import Celery
from celery.schedules import crontab
from celery import shared_task

@shared_task
def add_num(x, y):
    return x+y

核心/芹菜.py

from __future__ import absolute_import, unicode_literals
import os
from celery import Celery

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core.settings')

app = Celery('core')
app.conf.timezone = 'UTC'
app.config_from_object("django.conf:settings", namespace="CELERY")
app.autodiscover_tasks()

主應用程序/views.py

from django.shortcuts import render
from . import tasks

# Create your views here.
def index(request):
    if request.method == 'POST':
        x = request.POST['x']
        y = request.POST['y']

        print(x, y)

        add_num.delay(x, y)

        return render(request, 'index.html')

    return render(request, 'index.html')

我使用以下命令在后台運行rabbitmq

brew services start rabbitmq

celery 使用以下命令在單獨的終端窗口中運行

celery -A core worker -B -l INFO

當我提交表單時,出現以下錯誤。

NameError: name 'add_num' is not defined

我想我沒有正確地將任務導入到 views.py 中。

導入錯誤

改變線下

from . import tasks

from .tasks import add_num

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM