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 相关文章推荐
Tornado服务器中绑定域名、虚拟主机的方法
Aug 22 Python
python遍历目录的方法小结
Apr 28 Python
使用Mixin设计模式进行Python编程的方法讲解
Jun 21 Python
Python selenium 三种等待方式解读
Sep 15 Python
mac下pycharm设置python版本的图文教程
Jun 13 Python
python 修改本地网络配置的方法
Aug 14 Python
python实现俄罗斯方块游戏(改进版)
Mar 13 Python
解决json中ensure_ascii=False的问题
Apr 03 Python
python logging.info在终端没输出的解决
May 12 Python
什么是python的必选参数
Jun 21 Python
Python 创建守护进程的示例
Sep 29 Python
python数字图像处理实现图像的形变与缩放
Jun 28 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
ajax+php打造进度条代码[readyState各状态说明]
2010/04/12 PHP
php使用异或实现的加密解密实例
2013/09/04 PHP
PHP产生不重复随机数的5个方法总结
2014/11/12 PHP
PHP计算百度地图两个GPS坐标之间距离的方法
2015/01/09 PHP
朋友网关于QQ相关的PHP代码(研究QQ的绝佳资料)
2015/01/26 PHP
浅谈PHP eval()函数定义和用法
2016/06/21 PHP
php获取服务器操作系统相关信息的方法
2016/10/08 PHP
php7新特性的理解和比较总结
2019/04/14 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
2019/09/03 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
用js实现多域名不同文件的调用方法
2007/01/12 Javascript
50款非常棒的 jQuery 插件分享
2012/03/29 Javascript
jquery五角星评分插件示例分享
2014/02/21 Javascript
js对象继承之原型链继承实例
2015/01/10 Javascript
jQuery简单实现input文本框内灰色提示文本效果的方法
2015/12/02 Javascript
微信小程序 地图定位简单实例
2016/10/14 Javascript
Vue中android4.4不兼容问题的解决方法
2018/09/04 Javascript
Vue 中 filter 与 computed 的区别与用法解析
2019/11/21 Javascript
vue动态加载SVG文件并修改节点数据的操作代码
2020/08/17 Javascript
使用webpack和rollup打包组件库的方法
2021/02/25 Javascript
python中字典(Dictionary)用法实例详解
2015/05/30 Python
浅谈pandas用groupby后对层级索引levels的处理方法
2018/11/06 Python
Python补齐字符串长度的实例
2018/11/15 Python
python获取本机所有IP地址的方法
2018/12/26 Python
Python 200行代码实现一个滑动验证码过程详解
2019/07/11 Python
解决django model修改添加字段报错的问题
2019/11/18 Python
手把手教你用Django执行原生SQL的方法
2021/02/18 Python
HTML最新标准HTML5总结(必看)
2016/06/13 HTML / CSS
微信小程序“圣诞帽”的实现思路详解
2017/12/28 HTML / CSS
英国音乐设备和乐器商店:Gear4music
2017/10/16 全球购物
英国现代绅士品牌:Hackett
2017/12/17 全球购物
个人总结与自我评价
2014/09/18 职场文书
贷款承诺书
2015/01/20 职场文书
失恋33天观后感
2015/06/11 职场文书
《钢铁是怎样炼成的》高中读后感
2019/08/07 职场文书
iSCSI服务器CHAP双向认证配置
2022/04/01 Servers