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

异步调用成功

 

posted @ 2019-04-21 19:47  柒月不哭  阅读(208)  评论(0编辑  收藏  举报