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中getattr函数使用方法 getattr实现工厂模式
Jan 20 Python
深入解析Python中的变量和赋值运算符
Oct 12 Python
使用pyecharts无法import Bar的解决方案
Apr 23 Python
Python基于回溯法子集树模板解决m着色问题示例
Sep 07 Python
11月编程语言排行榜 Python逆袭C#上升到第4
Nov 15 Python
python利用sklearn包编写决策树源代码
Dec 21 Python
numpy中实现ndarray数组返回符合特定条件的索引方法
Apr 17 Python
python中virtualenvwrapper安装与使用
May 20 Python
Django Form 实时从数据库中获取数据的操作方法
Jul 25 Python
django实现支付宝支付实例讲解
Oct 17 Python
Python3爬虫中识别图形验证码的实例讲解
Jul 30 Python
Selenium之模拟登录铁路12306的示例代码
Jul 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
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
2014/07/01 PHP
PHP采用XML-RPC构造Web Service实例教程
2014/07/16 PHP
关于jQuery中的end()使用方法
2011/07/10 Javascript
jQuery Ajax 仿AjaxPro.Utility.RegisterTypeForAjax辅助方法
2011/09/27 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
2012/04/11 Javascript
Jquery实现鼠标移上弹出提示框、移出消失思路及代码
2013/05/19 Javascript
JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例
2013/06/29 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
2015/09/06 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
JavaScript数值千分位格式化的两种简单实现方法
2016/08/01 Javascript
微信小程序 Tab页切换更新数据
2017/01/05 Javascript
js cookie实现记住密码功能
2017/01/17 Javascript
基于vue-simplemde实现图片拖拽、粘贴功能
2018/04/12 Javascript
详解Angular路由之路由守卫
2018/05/10 Javascript
使用jQuery mobile NuGet让你的网站在移动设备上同样精彩
2019/06/18 jQuery
JS操作json对象key、value的常用方法分析
2019/10/29 Javascript
JavaScript实现联动菜单特效
2020/01/07 Javascript
基于asyncio 异步协程框架实现收集B站直播弹幕
2016/09/11 Python
Python 正则表达式入门(中级篇)
2016/12/07 Python
Python装饰器原理与用法分析
2018/04/30 Python
在pytorch中为Module和Tensor指定GPU的例子
2019/08/19 Python
解决python 读取excel时 日期变成数字并加.0的问题
2019/10/08 Python
一文解决django 2.2与mysql兼容性问题
2020/07/15 Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
2020/09/23 Python
HTML5+css3:3D旋转木马效果相册
2017/01/03 HTML / CSS
十一个高级MySql面试题
2014/10/06 面试题
车工岗位职责
2013/11/26 职场文书
测试工程师程序员求职信范文
2014/02/20 职场文书
行政部岗位职责范本
2014/03/13 职场文书
职员竞岗演讲稿
2014/05/14 职场文书
2014年环保工作总结
2014/11/26 职场文书
餐厅收银员岗位职责
2015/04/07 职场文书
公司中层管理培训心得体会
2016/01/11 职场文书
2019个人工作自我评价范文(3篇)
2019/09/19 职场文书
JavaScript获取URL参数的方法分享
2022/04/07 Javascript