优点:
简单:Celery 易于使用和维护,并且它 不需要配置文件 ,并且配置和使用还是比较简单的
- 高可用:当任务执行失败或执行过程中发生连接中断,celery 会自动尝试重新执行任务
- 快速:单个 Celery 进程每分钟可处理数以百万计的任务,而保持往返延迟在亚毫秒级
- 灵活: Celery 几乎所有部分都可以扩展或单独使用,各个部分可以自定义。
文件目录结构
celery_main.py文件
from celery import Celery
#broker是一个消息队列,所有的耗费时间的任务都放在这个队列中
app = Celery("myworker",broker="redis://:123@localhost:6379")
#自动发现任务
celery_app.autodiscover_tasks(['celery_task']) #定义异步任务的文件夹
task.py文件
#定义异步任务
from celery_task.celery_main import celery_app
@celery_app.task
@parser()
def send_data(formdata):
count = 0
while True:
u_id = g.user['id']
send = accpet_email()
if send == True:
count += 1
count -= formdata['count']
dict1[u_id] = count
que.put(dict1)
else:
return jsonify({
"code":400,
"msg":"执行任务失败"
})
#启动命令:
celery -A 异步任务文件名 worker -l info -P gevent
celery -A celery_task.task worker -l info -P gevent