Windows环境下Celery任务队列配置与执行详解
本文详细解析在Windows操作系统中配置Celery实现简单任务队列的全过程。涵盖从环境准备(Python 3.7.5、Celery 4.3.0、Redis)到依赖安装(eventlet),再到代码编写与Worker启动的具体步骤。重点说明Windows环境下必须使用eventlet作为并发模式,并提供了完整的Celery实例创建、任务定义及调用代码示例,帮助开发者快速掌握本地异步任务处理方案。
本文深入解析在Windows环境中利用Celery构建简单任务队列的具体实施步骤。文中通过详细的示例代码展示了配置与执行过程,旨在为相关项目的开发或技术学习提供具有实际参考价值的指导。
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(注意:在Windows环境下必须安装此依赖,可通过pip install eventlet命令进行安装)
6. 集成开发环境:PyCharm
三、关于celery的安装和卸载处理
pip install celery #安装
pip install celery == 3.1.25 #指定安装版本
pip uninstall celery #卸载
Celery核心组件解析
四、Celery分为3个部分
1. Worker部分:负责任务的实际处理,即工作进程。从个人理解来看,工作进程对应于编写的Python代码,同时也包含Python调用系统工具的功能部分。
2. Broker部分:负责任务消息的分发以及任务结果的存储。这部分功能主要由中间数据存储系统承担,常见的选择包括消息队列服务器如RabbitMQ或Redis等。
3. Celery主类:负责任务的最初指派与执行控制。它可以是一个独立的Python脚本,也可以与其他程序结合,例如集成到Django或Flask等Web框架中,或应用于其他各类应用场景。
五、上代码:
Celery代码实现示例
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

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下Worker启动与参数说明
六、执行worker
1. 创建一个Worker以等待处理队列中的任务。操作时,请以管理员身份打开Windows PowerShell终端,并将当前目录切换至E:\SvnCode\myCode。
2. 执行启动命令:celery -A celery_tasks.tasks worker -l info -P eventlet
参数解释:命令中的-A参数指定Celery APP的名称,此处指代celery_tasks,具体对应文件为tasks.py(即APP名称后的tasks部分)。Worker是执行任务的角色,-l参数指定日志级别为info(默认值)。该命令启动了一个Worker进程,用于执行程序中定义的add加法任务。其中-P eventlet参数是为了防止在Windows环境下出现兼容性问题而必须指定的并发模式。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









