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使用标准库根据进程名如何获取进程的pid详解
Oct 31 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
Mar 05 Python
Python调用C++,通过Pybind11制作Python接口
Oct 16 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
Jan 30 Python
python实现合并两个排序的链表
Mar 03 Python
python导入不同目录下的自定义模块过程解析
Nov 18 Python
Python动态声明变量赋值代码实例
Dec 30 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
Mar 10 Python
Django查询优化及ajax编码格式原理解析
Mar 25 Python
python实现磁盘日志清理的示例
Nov 05 Python
python实现图片转字符画的完整代码
Feb 21 Python
python 闭包函数详细介绍
Apr 19 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模拟SQL Server的两个日期处理函数
2006/10/09 PHP
php使用ftp远程上传文件类(完美解决主从文件同步问题的方法)
2016/09/23 PHP
详谈phpAdmin修改密码后拒绝访问的问题
2017/04/03 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
2017/04/18 PHP
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
js模拟实现Array的sort方法
2007/12/11 Javascript
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
2010/05/04 Javascript
通过一段代码简单说js中的this的使用
2013/07/23 Javascript
JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)
2013/11/13 Javascript
浮动的div自适应居中显示的js代码
2013/12/23 Javascript
AngularJS单选框及多选框实现双向动态绑定
2016/01/13 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
JavaScript实现简单的双色球(实例讲解)
2017/07/31 Javascript
jquery实现选项卡切换代码实例
2019/05/14 jQuery
jQuery操作元素的内容和样式完整实例分析
2020/01/10 jQuery
原生js实现碰撞检测
2020/03/12 Javascript
vue组件开发之slider组件使用详解
2020/08/21 Javascript
Python实现子类调用父类的方法
2014/11/10 Python
Python中用PIL库批量给图片加上序号的教程
2015/05/06 Python
快速了解Python中的装饰器
2018/01/11 Python
python实现一组典型数据格式转换
2018/12/15 Python
python自动分箱,计算woe,iv的实例代码
2019/11/22 Python
深入了解Python 变量作用域
2020/07/24 Python
Python计算矩阵的和积的实例详解
2020/09/10 Python
多个版本的python共存时使用pip的正确做法
2020/10/26 Python
python飞机大战游戏实例讲解
2020/12/04 Python
在vscode中启动conda虚拟环境的思路详解
2020/12/25 Python
美国花布包包品牌:Vera Bradley
2017/08/11 全球购物
SmartBuyGlasses美国官网:太阳眼镜和眼镜
2017/08/20 全球购物
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
2016/03/23 面试题
工程造价专业求职信
2014/07/17 职场文书
2014年银行个人工作总结
2014/12/05 职场文书
建国70周年的心得体会(2篇)
2019/09/20 职场文书
vue使用节流函数的踩坑实例指南
2021/05/20 Vue.js
springboot中的pom文件 project报错问题
2022/01/18 Java/Android