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复制目录结构脚本代码分享
Mar 06 Python
在IIS服务器上以CGI方式运行Python脚本的教程
Apr 25 Python
详解Django中的ifequal和ifnotequal标签使用
Jul 16 Python
在Linux命令行终端中使用python的简单方法(推荐)
Jan 23 Python
Python reduce()函数的用法小结
Nov 15 Python
Python迭代器定义与简单用法分析
Apr 30 Python
python日期时间转为字符串或者格式化输出的实例
May 29 Python
Python第三方Window模块文件的几种安装方法
Nov 22 Python
Python unittest单元测试框架及断言方法
Apr 15 Python
使用Keras预训练好的模型进行目标类别预测详解
Jun 27 Python
pycharm无法导入lxml的解决办法
Mar 31 Python
Pytest实现setup和teardown的详细使用详解
Apr 17 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
linux php mysql数据库备份实现代码
2009/03/10 PHP
PHP 实现多服务器共享 SESSION 数据
2009/08/15 PHP
一个PHP的String类代码
2010/04/20 PHP
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
2011/05/04 PHP
Javascript学习笔记8 用JSON做原型
2010/01/11 Javascript
css transform 3D幻灯片特效实现步骤解读
2013/03/27 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
javascript学习笔记(五)原型和原型链详解
2014/10/08 Javascript
究竟什么是Node.js?Node.js有什么好处?
2015/05/29 Javascript
jQuery插入节点和移动节点用法示例(insertAfter、insertBefore方法)
2016/09/08 Javascript
想学习javascript JS和jQuery哪个重要 先学哪个
2016/12/11 Javascript
Bootstrap3 datetimepicker控件使用实例
2016/12/13 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
2017/01/21 Javascript
js阻止移动端页面滚动的两种方法
2017/01/25 Javascript
JS中使用 after 伪类清除浮动实例
2017/03/01 Javascript
vue-cli开发环境实现跨域请求的方法
2018/04/07 Javascript
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
2018/07/23 Javascript
详解vue-router传参的两种方式
2018/09/10 Javascript
3分钟读懂移动端rem使用方法(推荐)
2019/05/06 Javascript
微信小程序select下拉框实现效果
2019/05/15 Javascript
微信小程序上传图片并等比列压缩到指定大小的实例代码
2019/10/24 Javascript
微信小程序 button样式设置为图片的方法
2020/06/19 Javascript
Linux中安装Python的交互式解释器IPython的教程
2016/06/13 Python
基于Python实现定时自动给微信好友发送天气预报
2018/10/25 Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
2019/10/12 Python
python绘制雪景图
2019/12/16 Python
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
Lookfantastic香港官网:英国知名美妆购物网站
2018/06/19 全球购物
荷兰度假屋租赁网站:Aan Zee
2020/02/28 全球购物
用你熟悉的语言写一个连接ORACLE数据库的程序,能够完成修改和查询工作
2012/06/11 面试题
银行贷款委托书范本
2014/10/11 职场文书
物业工程部主管岗位职责
2015/04/16 职场文书
呼啸山庄读书笔记
2015/06/29 职场文书
企业转让协议书(范文2篇)
2019/08/15 职场文书
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL