windows环境中利用celery实现简单任务队列过程解析

作者:wolf child 时间:2023-08-09 12:15:28 

这篇文章主要介绍了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实现简单任务队列过程解析

来源:https://www.cnblogs.com/simpleBlue3/p/11906498.html

标签:windows,celery,简单,任务,队列
0
投稿

猜你喜欢

  • python批量复制图片到另一个文件夹

    2021-04-30 09:36:50
  • python 用递归实现通用爬虫解析器

    2022-04-15 08:13:55
  • Python+Opencv实现计算闭合区域面积

    2023-03-17 03:02:44
  • Python爬虫入门案例之爬取二手房源数据

    2021-07-13 15:31:41
  • python实现地牢迷宫生成的完整步骤

    2021-07-26 19:27:56
  • Dreamweaver量身打造Wordpress留言板

    2009-12-09 17:08:00
  • python tkinter模块的简单使用

    2021-11-20 16:52:33
  • 八条常见的CSS错误及修复方法

    2010-04-08 16:54:00
  • Oracle表空间数据库文件收缩案例解析

    2024-01-13 02:07:34
  • 使用AJAX的一个简单的例子

    2007-09-21 17:55:00
  • Vue+Antv F2实现层叠柱状图

    2023-07-02 16:54:55
  • oracle 存储过程和函数例子

    2009-08-08 22:27:00
  • MySQL8.0.20单机多实例部署步骤

    2024-01-13 13:46:37
  • 详解Python 字符串相似性的几种度量方法

    2023-06-19 14:12:39
  • python+django快速实现文件上传

    2021-03-12 19:07:38
  • Python 实现opencv所使用的图片格式与 base64 转换

    2021-02-28 11:59:09
  • 解决在Python编辑器pycharm中程序run正常debug错误的问题

    2023-09-09 09:58:39
  • fckeditor编辑器在php中的配置方法

    2023-10-14 14:26:52
  • Pandas缺失值填充 df.fillna()的实现

    2023-11-24 00:01:41
  • Python使用Tkinter实现滚动抽奖器效果

    2023-04-07 03:05:45
  • asp之家 网络编程 m.aspxhome.com