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