赞
踩
celery的安装命令:pip install celery
Celery 是一个 基于python的分布式异步任务队列,通过它可以轻松的实现任务的异步处理
1.异步任务:将==耗时==的操作任务提交给Celery异步执行,比如发送短信/邮件、消息推送、音频处理等等
2.做一个定时任务,比如每天定时执行爬虫爬取指定内容
3.还可以使用celery实现简单的分布式爬虫系统等等
celery一共有五大核心:task(任务)、broker(中间件)、worker(执行任务)、beat(定时任务调度器)、backend(保存任务的执行结果)。其工作原理就是 把一个任务或者是定时任务通过定时任务调度器交给broker中间件,由它来分配任务给多个worker进行执行,执行的任务结果统一保存到backend中
- #接收和发送任务
- BROKER_URL="redis://127.0.0.1:6379/1"
- #存储任务结果
- CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/2'
- #设置时间参照
- CELERY_TIMEZONE = 'Asia/Shanghai'
config.py里面只要是celery的配置信息
- #接收和发送任务
- BROKER_URL="redis://127.0.0.1:6379/1"
- #存储任务结果
- CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/2'
- #设置时间参照
- CELERY_TIMEZONE = 'Asia/Shanghai'
main.py主入口文件
- from celery import Celery
- #创建celery应用
- celery_app = Celery('Home')
- #加载配置文件
- celery_app.config_from_object("tasks.config")
- #自动发现任务
- celery_app.autodiscover_tasks(['tasks.sms'])
task.py主要是执行任务,我这里是用了celery异步任务队列发了一个短信验证
- from tasks.main import celery_app
- from ronglian_sms_sdk import SmsSDK
-
-
- accid = '8aaf07087f77bf96017fde92f64e355c'
- authtoken = '837b4695750245e2b41246eb8aeaf0ee'
- appid = '8aaf07087f77bf96017fde92f74e3563'
-
- #执行任务
- @celery_app.task
- def sms_code(code, mobile,expire=5):
- sdk = SmsSDK(accid,authtoken,appid)
- # 准备数据
- tid = "1"
- datas = ("%s"%code,"%s"%expire)
-
- #发送请求
- res = sdk.sendMessage(tid=tid,mobile=mobile,datas=datas)
- return res
celery - A 任务名 woker -l info
那么我这里的启动命令应该是 celery -A tasks.sms.task woker -l info
到这里就结束了,此文章仅限作者理解,如有错误欢迎评论指导
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。