celery的使用(二)
1. 在需要使用异步任务的APP目录下新建一个 tasks.py(不能写错!!!) 文件
接下来在tasks.py写task逻辑
1 from celery import task 2 from django.core.mail import send_mail 3 from django.conf import settings 4 import time 5 6 @task 7 def first_task(loopnum): 8 # 模拟一个耗时操作 9 for i in range(loopnum): 10 time.sleep(2) 11 print("睡后1元")
2.在views.py 视图中调用
1 from django.http import HttpResponse 2 from django.shortcuts import render 3 from .tasks import first_task 4 5 # Create your views here. 6 7 def first_celery(req): 8 # 任务参数名.delay(参数) 9 first_task.delay(4) 10 return HttpResponse("ok")
3.做迁移并把服务跑起来
4.另开一个xshell窗口启动worker
python manage.py celery worker --loglevel=info (或者celery -A 你的工程名 worker -l info)
启动效果如图
注意:在views.py中调用一定要加delay
任务函数名.delay(参数)
在修改tasks.py的内容后,要重启worker
python manage.py celery worker --loglevel=info
异步调用成功