当前位置:   article > 正文

Flask中的celery使用_flask celery

flask celery

1.celery的介绍及安装命令

2.celery的应用场景及工作原理

3.在flask中使用celery异步队列

4.celery的启动命令


1.celery的基本介绍和安装命令

celery的安装命令:pip install celery

Celery 是一个 基于python的分布式异步任务队列,通过它可以轻松的实现任务的异步处理

2.celery的应用场景和工作原理

应用场景:

1.异步任务:将==耗时==的操作任务提交给Celery异步执行,比如发送短信/邮件、消息推送、音频处理等等

2.做一个定时任务,比如每天定时执行爬虫爬取指定内容

3.还可以使用celery实现简单的分布式爬虫系统等等

工作原理:

celery一共有五大核心:task(任务)、broker(中间件)、worker(执行任务)、beat(定时任务调度器)、backend(保存任务的执行结果)。其工作原理就是 把一个任务或者是定时任务通过定时任务调度器交给broker中间件,由它来分配任务给多个worker进行执行,执行的任务结果统一保存到backend中

  1. #接收和发送任务
  2. BROKER_URL="redis://127.0.0.1:6379/1"
  3. #存储任务结果
  4. CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/2'
  5. #设置时间参照
  6. CELERY_TIMEZONE = 'Asia/Shanghai'

3.在flask中是用celery发送短信验证码

 config.py里面只要是celery的配置信息

  1. #接收和发送任务
  2. BROKER_URL="redis://127.0.0.1:6379/1"
  3. #存储任务结果
  4. CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/2'
  5. #设置时间参照
  6. CELERY_TIMEZONE = 'Asia/Shanghai'

main.py主入口文件

  1. from celery import Celery
  2. #创建celery应用
  3. celery_app = Celery('Home')
  4. #加载配置文件
  5. celery_app.config_from_object("tasks.config")
  6. #自动发现任务
  7. celery_app.autodiscover_tasks(['tasks.sms'])

task.py主要是执行任务,我这里是用了celery异步任务队列发了一个短信验证

  1. from tasks.main import celery_app
  2. from ronglian_sms_sdk import SmsSDK
  3. accid = '8aaf07087f77bf96017fde92f64e355c'
  4. authtoken = '837b4695750245e2b41246eb8aeaf0ee'
  5. appid = '8aaf07087f77bf96017fde92f74e3563'
  6. #执行任务
  7. @celery_app.task
  8. def sms_code(code, mobile,expire=5):
  9. sdk = SmsSDK(accid,authtoken,appid)
  10. # 准备数据
  11. tid = "1"
  12. datas = ("%s"%code,"%s"%expire)
  13. #发送请求
  14. res = sdk.sendMessage(tid=tid,mobile=mobile,datas=datas)
  15. return res

4.celery的启动命令

celery - A  任务名 woker -l info 

那么我这里的启动命令应该是 celery -A tasks.sms.task woker -l info 

到这里就结束了,此文章仅限作者理解,如有错误欢迎评论指导

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/414295
推荐阅读
相关标签
  

闽ICP备14008679号