windows环境中利用celery实现简单任务队列过程解析


Posted in Python onNovember 29, 2019

这篇文章主要介绍了windows环境中利用celery实现简单任务队列过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、背景

最近因项目需要,学习任务队列Celery的用法;

二、测试使用环境:

1.Windows7 x64

2.Python == 3.7.5

3.celery == 4.3.0

4.redis =3.3.11

5.eventlet==0.25.1 ==> pip install eventlet (windows环境必须安装)

6.IDE为pycharm

三、关于celery的安装和卸载处理

pip install celery #安装

pip install celery == 3.1.25 #指定安装版本

pip uninstall celery #卸载

四、Celery分为3个部分

1.worker部分负责任务的处理,即工作进程(我的理解工作进程就是你写的python代码,当然还包括python调用系统工具功能)

2.broker部分负责任务消息的分发以及任务结果的存储,这部分任务主要由中间数据存储系统完成,比如消息队列服务器RabbitMQ、redis、

3.Celery主类,进行任务最开始的指派与执行控制,他可以是单独的python脚本,也可以和其他程序结合,应用到django或者flask等web框架里面以及你能想到的任何应用

五、上代码:

1.创建Celery实例tasks.py:

# -*- coding: utf-8 -*- 

# 使用celery
import time
from celery import Celery
import redis

# 创建一个Celery类的实例对象
app = Celery('celery_tasks.tasks', broker='redis://:topsky@127.0.0.1:6379/1')

@app.task
def add(a, b):
  count = a + b
  print('任务函数正在执行....')
  time.sleep(5)
  return count

windows环境中利用celery实现简单任务队列过程解析

2.调用celery任务代码:

from celery_tasks.tasks import add
def notity(a, b):
  # result = a + b
  result = add.delay(a, b)
  return result
if __name__ == '__main__':
  result = notity(3, 5)
  print(result)

windows环境中利用celery实现简单任务队列过程解析

六、执行worker

1.创建一个worker,等待处理队列中的任务,打开Windows PowerShell终端以管理员身份运行,cd到E:\SvnCode\myCode目录中,

2.执行命令: celery -A celery_tasks.tasks worker -l info -P eventlet

参数解释,命令中-A参数表示的是Celery APP的名称celery_tasks,这个实例中指的就是tasks.py,后面的tasks就是APP的名称,worker是一个执行任务角色,后面的loglevel=info记录日志类型默认是info,这个命令启动了一个 worker, 用来执行程序中add这个加法任务(task),-P eventlet是防止在windows环境下出现

windows环境中利用celery实现简单任务队列过程解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python SQLite3数据库操作类分享
Jun 10 Python
python实现登陆知乎获得个人收藏并保存为word文件
Mar 16 Python
Python 对象中的数据类型
May 13 Python
Python编程使用NLTK进行自然语言处理详解
Nov 16 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
Jan 06 Python
Python 使用PIL numpy 实现拼接图片的示例
May 08 Python
django 中使用DateTime常用的时间查询方式
Dec 03 Python
基于YUV 数据格式详解及python实现方式
Dec 09 Python
Softmax函数原理及Python实现过程解析
May 22 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
May 22 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
Jun 03 Python
教你怎么用Python监控愉客行车程
Apr 29 Python
基于Python中isfile函数和isdir函数使用详解
Nov 29 #Python
python os.path.isfile 的使用误区详解
Nov 29 #Python
python实现矩阵和array数组之间的转换
Nov 29 #Python
Python3 使用map()批量的转换数据类型,如str转float的实现
Nov 29 #Python
python os.path.isfile()因参数问题判断错误的解决
Nov 29 #Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
Nov 29 #Python
flask框架配置mysql数据库操作详解
Nov 29 #Python
You might like
PHP中文件上传的一个问题
2010/09/04 PHP
浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法
2013/06/18 PHP
php中json_encode UTF-8中文乱码的更好解决方法
2014/09/28 PHP
php生成圆角图片的方法
2015/04/07 PHP
prototype 学习笔记整理
2009/07/17 Javascript
Javascript 中的 call 和 apply使用介绍
2012/02/22 Javascript
JS 去除Array中的null值示例代码
2013/11/20 Javascript
JS的事件绑定深入认识
2014/06/26 Javascript
jQuery控制Div拖拽效果完整实例分析
2015/04/15 Javascript
把Node.js程序加入服务实现随机启动
2015/06/25 Javascript
原生JS实现网络彩票投注效果
2016/09/25 Javascript
详解AngularJS验证、过滤器、指令
2017/01/04 Javascript
vue-router配合ElementUI实现导航的实例
2018/02/11 Javascript
详解JavaScript添加给定的标签选项
2018/09/17 Javascript
详解使用webpack+electron+reactJs开发windows桌面应用
2019/02/01 Javascript
JS数组方法push()、pop()用法实例分析
2020/01/18 Javascript
javascript canvas API内容整理
2020/02/16 Javascript
vue中使用vue-print.js实现多页打印
2020/03/05 Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
2020/11/04 Javascript
python访问类中docstring注释的实现方法
2015/05/04 Python
python使用turtle绘制国际象棋棋盘
2019/05/23 Python
django使用xadmin的全局配置详解
2019/11/15 Python
python数据类型强制转换实例详解
2020/06/22 Python
快速了解Python开发环境Spyder
2020/06/29 Python
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
2019/01/17 HTML / CSS
canvas进阶之如何画出平滑的曲线
2018/10/15 HTML / CSS
淘宝店策划方案
2014/06/07 职场文书
邹越感恩父母演讲稿
2014/08/28 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
描写九月优美句子(39条)
2019/09/11 职场文书
在Django中使用MQTT的方法
2021/05/10 Python
uwsgi+nginx代理Django无法访问静态资源的解决
2021/05/10 Servers
MySQL CHAR和VARCHAR该如何选择
2021/05/31 MySQL
MongoDB 常用的crud操作语句
2021/06/20 MongoDB
Java新手教程之ArrayList的基本使用
2021/06/20 Java/Android
Ajax实现三级联动效果
2021/10/05 Javascript