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实现换行符转换的脚本的教程
Apr 16 Python
Python自动扫雷实现方法
Jul 25 Python
Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例
Feb 13 Python
Pandas 对Dataframe结构排序的实现方法
Apr 10 Python
在python中实现将一张图片剪切成四份的方法
Dec 05 Python
python分批定量读取文件内容,输出到不同文件中的方法
Dec 08 Python
python三大神器之fabric使用教程
Jun 10 Python
python3反转字符串的3种方法(小结)
Nov 07 Python
使用opencv将视频帧转成图片输出
Dec 10 Python
Python+opencv+pyaudio实现带声音屏幕录制
Dec 23 Python
Python matplotlib实时画图案例
Apr 23 Python
OpenCV+python实现实时目标检测功能
Jun 24 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
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
2011/08/12 PHP
PHP中strtotime函数使用方法详解
2011/11/27 PHP
编写php应用程序实现摘要式身份验证的方法详解
2013/06/08 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
2016/11/30 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/02/09 Javascript
JSON.parse 解析字符串出错的解决方法
2010/07/08 Javascript
js文本框输入点回车触发确定兼容IE、FF等
2013/11/19 Javascript
详解JavaScript的策略模式编程
2015/06/24 Javascript
二维码图片生成器QRCode.js简单介绍
2017/08/18 Javascript
深入理解node.js http模块
2018/01/24 Javascript
jQuery轮播图实例详解
2018/08/15 jQuery
Node.js事件的正确使用方法
2019/04/05 Javascript
详解elementui之el-image-viewer(图片查看器)
2019/08/30 Javascript
微信小程序实现上拉加载功能
2019/11/20 Javascript
Element Tooltip 文字提示的使用示例
2020/07/26 Javascript
[02:59]2014DOTA2西雅图国际邀请赛 圆满落幕中国夺冠
2014/07/23 DOTA
[01:14]DOTA2亚洲邀请赛 ShowOpen
2015/02/07 DOTA
[01:01:24]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第三局
2016/02/25 DOTA
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
python 递归深度优先搜索与广度优先搜索算法模拟实现
2018/10/22 Python
Django基于客户端下载文件实现方法
2020/04/21 Python
opencv 图像腐蚀和图像膨胀的实现
2020/07/07 Python
PIP和conda 更换国内安装源的方法步骤
2020/09/21 Python
澳大利亚领先的折扣药房:Chemist Direct(有中文站)
2018/11/24 全球购物
复核员上岗演讲稿
2014/01/05 职场文书
乳制品整治工作方案
2014/05/29 职场文书
管理岗位竞聘演讲稿
2014/08/18 职场文书
2014年中学生检讨书大全
2014/10/09 职场文书
2015年初中元旦晚会活动总结
2014/11/28 职场文书
护士个人总结范文
2015/02/13 职场文书
辞职信标准格式
2015/02/27 职场文书
2015年办税服务厅工作总结
2015/07/23 职场文书
Golang 实现获取当前函数名称和文件行号等操作
2021/05/08 Golang
星际争霸 Light vs Action 一场把教主看到鬼畜的比赛
2022/04/01 星际争霸
Java使用HttpClient实现文件下载
2022/08/14 Java/Android