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 过滤字符串的技巧,map与itertools.imap
Sep 06 Python
python中使用urllib2伪造HTTP报头的2个方法
Jul 07 Python
在Python程序中操作文件之flush()方法的使用教程
May 24 Python
python web.py开发httpserver解决跨域问题实例解析
Feb 12 Python
详解python--模拟轮盘抽奖游戏
Apr 12 Python
django+tornado实现实时查看远程日志的方法
Aug 12 Python
Numpy之将矩阵拉成向量的实例
Nov 30 Python
python支持多线程的爬虫实例
Dec 21 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
Feb 10 Python
PyTorch-GPU加速实例
Jun 23 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
Nov 01 Python
python 基于selectors库实现文件上传与下载
Dec 31 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部分常见问题总结
2008/03/27 PHP
thinkphp实现多语言功能(语言包)
2014/03/04 PHP
PHP中的插件机制原理和实例
2014/07/08 PHP
yii的入口文件index.php中为什么会有这两句
2016/08/04 PHP
php自定义函数实现二维数组按指定key排序的方法
2016/09/29 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
2019/10/09 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
在jquery中combobox多选的不兼容问题总结
2013/12/24 Javascript
JQuery为页面Dom元素绑定事件及解除绑定方法
2014/04/23 Javascript
javascript基于DOM实现省市级联下拉框的方法
2015/05/14 Javascript
javascript 动态脚本添加的简单方法
2016/10/11 Javascript
vue的全局变量和全局拦截请求器的示例代码
2018/09/13 Javascript
使用electron制作满屏心特效的示例代码
2018/11/27 Javascript
通过jQuery学习js类型判断的技巧
2019/05/27 jQuery
Python实现基于KNN算法的笔迹识别功能详解
2018/07/09 Python
对python numpy.array插入一行或一列的方法详解
2019/01/29 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
2019/04/25 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
2019/06/28 Python
django settings.py 配置文件及介绍
2019/07/15 Python
Python的条件锁与事件共享详解
2019/09/12 Python
Python数据可视化实现漏斗图过程图解
2020/07/20 Python
使用OpenCV实现人脸图像卡通化的示例代码
2021/01/15 Python
IE8下CSS3选择器nth-child() 不兼容问题的解决方法
2016/11/16 HTML / CSS
什么是Smart Navigation?
2016/07/03 面试题
优秀高中生事迹材料
2014/02/11 职场文书
纪检监察建议书
2014/05/19 职场文书
小学英语复习计划
2015/01/19 职场文书
2015年端午节活动总结
2015/02/11 职场文书
2015年城管个人工作总结
2015/05/15 职场文书
2015年数学教研组工作总结
2015/05/23 职场文书
民事诉讼代理词
2015/05/25 职场文书
雷锋的故事观后感
2015/06/10 职场文书
利用Python读取微信朋友圈的多种方法总结
2021/08/23 Python
python数字类型和占位符详情
2022/03/13 Python
Javascript中Microtask和Macrotask鲜为人知的知识点
2022/04/02 Javascript
python内置模块之上下文管理contextlib
2022/06/14 Python