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实现的udp协议Server和Client代码实例
Jun 04 Python
python中使用urllib2获取http请求状态码的代码例子
Jul 07 Python
Python中使用第三方库xlrd来读取Excel示例
Apr 05 Python
Python单元测试框架unittest简明使用实例
Apr 13 Python
讲解Python中for循环下的索引变量的作用域
Apr 15 Python
Python 实现使用dict 创建二维数据、DataFrame
Apr 13 Python
python openpyxl使用方法详解
Jul 18 Python
获取Pytorch中间某一层权重或者特征的例子
Aug 17 Python
基于Python批量生成指定尺寸缩略图代码实例
Nov 20 Python
python实现把两个二维array叠加成三维array示例
Nov 29 Python
Python自定义聚合函数merge与transform区别详解
May 26 Python
Python+Appium实现自动化清理微信僵尸好友的方法
Feb 04 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
第十三节--对象串行化
2006/11/16 PHP
解析php中eclipse 用空格替换 tab键
2013/06/24 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
自适应图片大小的弹出窗口
2006/07/27 Javascript
JavaScript网页制作特殊效果用随机数
2007/05/22 Javascript
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
2010/03/23 Javascript
jQuery中的read和JavaScript中的onload函数的区别
2014/08/27 Javascript
使用jQuery仿苹果官网焦点图特效
2014/12/23 Javascript
jQuery中width()方法用法实例
2014/12/24 Javascript
在JavaScript中正确引用bind方法的应用
2015/05/11 Javascript
浅谈window对象的scrollBy()方法
2015/07/15 Javascript
通过点击jqgrid表格弹出需要的表格数据
2015/12/02 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记8)
2015/12/24 Javascript
JavaScript html5 canvas绘制时钟效果(二)
2016/03/27 Javascript
BOM系列第二篇之定时器requestAnimationFrame
2016/08/17 Javascript
nodejs搭建本地http服务器教程
2017/03/13 NodeJs
基于Vue的SPA动态修改页面title的方法(推荐)
2018/01/02 Javascript
JavaScript 日期时间选择器一些小结
2018/04/02 Javascript
基于rollup的组件库打包体积优化小结
2018/06/18 Javascript
nodejs的安装使用与npm的介绍
2019/09/11 NodeJs
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
Python图像处理之图片文字识别功能(OCR)
2019/07/30 Python
python pillow模块使用方法详解
2019/08/30 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
python-地图可视化组件folium的操作
2020/12/14 Python
英国骑行、跑步、游泳、铁人三项运动装备专卖店:Wiggle
2016/08/23 全球购物
美国办公用品折扣网站:Shoplet.com
2019/11/24 全球购物
美国知名眼镜网站:Target Optical
2020/04/04 全球购物
西式结婚主持词
2014/03/14 职场文书
老公爱的承诺书
2014/03/31 职场文书
公司节能减排方案
2014/05/16 职场文书
党员干部反四风对照检查材料思想汇报
2014/09/14 职场文书
领导班子整改方案
2014/10/25 职场文书
Ajax实现异步加载数据
2021/11/17 Javascript
Spring Boot 底层原理基础深度解析
2022/04/03 Java/Android