Windows 环境下基于 Redis 的 Celery 任务调度模块的实现
2024-10-18 18:20:55
搭建环境:
Windows-x64 10
Celery 3.1.23
Celery-with-redis 3.0
Redis-win32-win64 2.4.5
实现步骤:
1.安装 Redis
由于 Redis 并没有官方支持 Windows,因此需要在 https://github.com/MSOpenTech/redis 中下载 Redis 包。
随后,只需将对应的压缩包解压缩至相应的目录即可。
2.安装 Celery 相关库
# pip intall celery
# pip install celery-with-redis
3.编写基于 Celery 的异步程序
假设编写异步邮件发送程序,其中异步发送邮件的函数名为 Send_Mail,定义于 mail.py 文件中。
注意:初始化 Celery 对象时要指定任务名称、Celery 后端(backend)执行的消息及结果的实现方式、Celery中间人(broker)的实现方式。
例如:初始化 Celery 对象任务名为 mail,后端通过 Redis 保存信息,消息队列也由 Redis 提供服务,如下所示。
celery = Celery('mail', backend='redis://localhost', broker='redis://localhost:6379/0')
4.启动 Redis
以管理员权限运行 cmd 环境,进入 Redis 目录,运行如下命令启动 Redis。
# redis-server.exe redis.conf
5.启动 Celery 处理任务
以管理员权限运行 cmd 环境,激活 virtualenv。
假设 mail.py 封装于名位 mail 的包内,且 mail 包处于 src 目录下,则进入 mail 包的前级目录下(即src),运行如下命令。
注意:单进程命令如下。
# celery -A mail.mail worker -l info -P solo
注意:多进程并发命令如下。Celery 默认设置 Worker 以 Pool 模式启动,默认大小为 CPU 核心数量,缺省序列化机制是 pickle,但可以指定为 json。
# celery -A mail.mail worker -l info
6.运行基于 Celery 的异步程序
运行调用异步发送邮件函数的程序,便可以实现异步发送邮件的功能。
随后,便可在 Celery 的 Worker 界面中看到类似的任务处理消息。
最新文章
- Lind.DDD.Plugins~插件模式的集成
- 【USACO 2.4】Fractions to Decimals(分数转小数)
- 分布式入门之5:paxos
- slim框架中防止crsf攻击时,用到的函数hash_equals
- 解决insmod: error inserting 'hello.ko': -1 Invalid module format
- SharePoint CMAL方式处理的 增,删,查,改
- console.read()读入的内容
- Java--CyclicBarrier使用简介
- DateTime.Compare(t1,t2)比較两个日期大小
- [20160711][VS2012配置OpenCV2.4.9]
- Java经典编程题50道之四十三
- 转载:MySQL EXPLAIN 命令详解学习
- Ubuntu无法进入Windows的NTFS分区
- Fiddler 手机抓包介绍
- 自然语言处理之:搭建基于HanLP的开发环境(转)
- cocos代码研究(5)Action学习笔记
- 2.4 Oracle之DCL的SQL语句之用户权限以及三大范式
- 翻翻git之---效果鲜明的类ViewPager库 ConvenientBanner(对图片载入部分进行改动)
- jQuery 初识
- 02 - Unit06:弹出对话框