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 13 Python
小白如何入门Python? 制作一个网站为例
Mar 06 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
Jun 01 Python
pycharm运行程序时在Python console窗口中运行的方法
Dec 03 Python
python实现感知器算法(批处理)
Jan 18 Python
Python学习笔记之视频人脸检测识别实例教程
Mar 06 Python
Python中format()格式输出全解
Apr 12 Python
python实现websocket的客户端压力测试
Jun 25 Python
python实现的登录与提交表单数据功能示例
Sep 25 Python
Win下PyInstaller 安装和使用教程
Dec 25 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
Mar 24 Python
python函数指定默认值的实例讲解
Mar 29 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针对数字的加密解密类
2014/03/20 PHP
php实现汉字验证码和算式验证码的方法
2015/03/07 PHP
Yii2 输出xml格式数据的方法
2016/05/03 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
2017/06/06 PHP
JavaScript 事件系统
2010/07/22 Javascript
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
简单的两种Extjs formpanel加载数据的方式
2013/11/09 Javascript
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
jquery $("#variable") 循环改变variable的值示例
2014/02/23 Javascript
JavaScript实现select添加option
2015/07/03 Javascript
分享有关jQuery中animate、slide、fade等动画的连续触发、滞后反复执行的bug
2016/01/10 Javascript
基于JavaScript实现动态添加删除表格的行
2016/02/01 Javascript
canvas绘制的直线动画
2017/01/23 Javascript
使用vue.js编写蓝色拼图小游戏
2017/03/17 Javascript
微信小程序 跳转方式总结
2017/04/20 Javascript
详解Vue结合后台的列表增删改案例
2018/08/21 Javascript
记React connect的几种写法(小结)
2018/09/18 Javascript
javascript的this关键字详解
2019/05/20 Javascript
[03:05]DOTA2英雄基础教程 嗜血狂魔
2013/12/10 DOTA
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
netbeans7安装python插件的方法图解
2013/12/24 Python
Python抓取手机号归属地信息示例代码
2016/11/28 Python
python将回车作为输入内容的实例
2018/06/23 Python
使用Python实现租车计费系统的两种方法
2018/09/29 Python
python命名空间(namespace)简单介绍
2019/08/10 Python
Django 在iframe里跳转顶层url的例子
2019/08/21 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
2019/08/30 Python
python如何实现复制目录到指定目录
2020/02/13 Python
Python使用Pygame绘制时钟
2020/11/29 Python
python tqdm库的使用
2020/11/30 Python
SteelSeries赛睿官网:游戏外设和配件的领先制造商(耳机、键盘、鼠标和鼠标垫)
2018/06/17 全球购物
英国在线购买轮胎、预订汽车、汽车维修和装配网站:Protyre
2020/04/12 全球购物
学校司机岗位职责
2013/11/14 职场文书
英文求职信写作小建议
2014/02/16 职场文书
场地使用证明模板
2014/10/25 职场文书
golang elasticsearch Client的使用详解
2021/05/05 Golang