1.在setting中:

import djcelery

#当djcelery.setup_loader()运行时,

#Celery便会去查看INSTALLD_APPS下包含的所有app目录中的tasks.py文件,

#找到标记为task的方法,将它们注册为celery
task。


djcelery.setup_loader()


BROKER_URL='amqp://guest:guest@localhost:5672//'


CELERY_RESULT_BACKEND='redis://localhost:6379/1'
  • 当djcelery.setup_loader()运行时,Celery便会去查看INSTALLD_APPS下包含的所有app目录中的tasks.py文件,找到标记为task的方法,将它们注册为celery task。

2.在setting中的install_app中添加djcelery

3.在新建的app下新建一个tasks.py的文件

  • tasks.py必须建在各app的根目录下

  • 不能随意命名。

  • ```
import time
from celery import task
@task
def add(x,y):
  time.sleep(4)

  print(x+y)

  return x+y

4.在view中调用tasks.py中的任务

  • ```
from django.http import JsonResponse
from .tasks import add
def do_request(request):
  add.delay(3,9)

  return JsonResponse({'msg':'success'})
  • 配置url

    • from django.conf.urls import url

      from . import views

      app_name = 'course'

      urlpatterns = [

      url('do/',views.do_request,name='do')

      ]

  • 主url中引入app中的url

    • url('course/',include('course.urls',namespace='course'))

启动项目和worker

查看帮助:python manage.py celery --help

  • 启动项目:

    • python manage.py runserver 0.0.0.0:8000

  • 启动worker

    • python manage.py celery worker -l INFO