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入门教程
Feb 08 Python
Python与R语言的简要对比
Nov 14 Python
Python之时间和日期使用小结
Feb 14 Python
Python Flask框架扩展操作示例
May 03 Python
用python中的matplotlib绘制方程图像代码
Nov 21 Python
python学生信息管理系统实现代码
Dec 17 Python
python随机模块random使用方法详解
Feb 14 Python
keras model.fit 解决validation_spilt=num 的问题
Jun 19 Python
Python实现数字的格式化输出
Aug 01 Python
pytorch __init__、forward与__call__的用法小结
Feb 27 Python
pytorch 带batch的tensor类型图像显示操作
May 20 Python
学会Python数据可视化必须尝试这7个库
Jun 16 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
smarty 缓存控制前的页面静态化原理
2013/03/15 PHP
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
2013/06/20 PHP
php中通过数组进行高效随机抽取指定条记录的算法
2013/09/09 PHP
什么是PHP7中的孤儿进程与僵尸进程
2019/04/14 PHP
php+js实现的无刷新下载文件功能示例
2019/08/23 PHP
浅谈Laravel中的三种中间件的作用
2019/10/13 PHP
简洁Ajax函数处理(示例代码)
2013/11/15 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
2014/05/14 Javascript
document.forms用法示例介绍
2014/06/26 Javascript
jquery插件jSignature实现手动签名
2015/05/04 Javascript
javascript实现uploadify上传格式以及个数限制
2015/11/23 Javascript
jQuery选择器用法实例详解
2015/12/17 Javascript
巧方法 JavaScript获取超链接的绝对URL地址
2016/06/14 Javascript
AngularJS中的表单简单入门
2016/07/28 Javascript
微信小程序 UI布局常用技巧整理总结
2016/12/05 Javascript
详解Angular结合zTree异步加载节点数据
2018/01/20 Javascript
react中使用css的7中方式(最全总结)
2019/02/11 Javascript
python中列表元素连接方法join用法实例
2015/04/07 Python
Python 26进制计算实现方法
2015/05/28 Python
Python中文字符串截取问题
2015/06/15 Python
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
python+opencv实现霍夫变换检测直线
2020/10/23 Python
Django基础知识 web框架的本质详解
2019/07/18 Python
Python队列RabbitMQ 使用方法实例记录
2019/08/05 Python
pytorch 预训练层的使用方法
2019/08/20 Python
详解pyinstaller selenium python3 chrome打包问题
2019/10/18 Python
python中seaborn包常用图形使用详解
2019/11/25 Python
DOUGLAS波兰:在线销售香水和化妆品
2020/07/05 全球购物
敏捷开发的主要原则都有哪些
2015/04/26 面试题
中学教师请假制度
2014/02/03 职场文书
司机职责范本
2014/03/08 职场文书
欢迎家长标语
2014/10/08 职场文书
十佳少年事迹材料
2014/12/25 职场文书
大学生毕业个人总结
2015/02/15 职场文书
综合办公室岗位职责
2015/04/11 职场文书
Python加密与解密模块hashlib与hmac
2022/06/05 Python