windows环境中利用celery实现简单任务队列过程解析
这篇文章主要介绍了windows环境中利用celery实现简单任务队列过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
一、背景
最近因项目需要,学习任务队列Celery的用法;
二、测试使用环境:
1.Windows7x64
2.Python==3.7.5
3.celery==4.3.0
4.redis=3.3.11
5.eventlet==0.25.1==>pipinstalleventlet(windows环境必须安装)
6.IDE为pycharm
三、关于celery的安装和卸载处理
pipinstallcelery#安装
pipinstallcelery==3.1.25#指定安装版本
pipuninstallcelery#卸载
四、Celery分为3个部分
1.worker部分负责任务的处理,即工作进程(我的理解工作进程就是你写的python代码,当然还包括python调用系统工具功能)
2.broker部分负责任务消息的分发以及任务结果的存储,这部分任务主要由中间数据存储系统完成,比如消息队列服务器RabbitMQ、redis、
3.Celery主类,进行任务最开始的指派与执行控制,他可以是单独的python脚本,也可以和其他程序结合,应用到django或者flask等web框架里面以及你能想到的任何应用
五、上代码:
1.创建Celery实例tasks.py:
#-*-coding:utf-8-*- #使用celery importtime fromceleryimportCelery importredis #创建一个Celery类的实例对象 app=Celery('celery_tasks.tasks',broker='redis://:topsky@127.0.0.1:6379/1') @app.task defadd(a,b): count=a+b print('任务函数正在执行....') time.sleep(5) returncount
2.调用celery任务代码:
fromcelery_tasks.tasksimportadd defnotity(a,b): #result=a+b result=add.delay(a,b) returnresult if__name__=='__main__': result=notity(3,5) print(result)
六、执行worker
1.创建一个worker,等待处理队列中的任务,打开WindowsPowerShell终端以管理员身份运行,cd到E:\SvnCode\myCode目录中,
2.执行命令:celery-Acelery_tasks.tasksworker-linfo-Peventlet
参数解释,命令中-A参数表示的是CeleryAPP的名称celery_tasks,这个实例中指的就是tasks.py,后面的tasks就是APP的名称,worker是一个执行任务角色,后面的loglevel=info记录日志类型默认是info,这个命令启动了一个worker,用来执行程序中add这个加法任务(task),-Peventlet是防止在windows环境下出现
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。