博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Celery+python+redis异步执行定时任务
阅读量:6099 次
发布时间:2019-06-20

本文共 1574 字,大约阅读时间需要 5 分钟。

我之前的一篇文章中写了【Celery+django+redis异步执行任务】 

博文: 
你会发现,这些代码并不依赖django框架,随便写到一个py文件中,就可以轻松的执行成功,这是因为这些代码并没有用到django-celery,django-redis等依附于django框架的东西。 
今天,参照官方文档示例,测试一下celery的异步执行定时任务如何。我先是在django框架内执行了一遍,没有问题;现在直接写个py文件,命令行下执行试试

1.环境搭建

通过pip 安装 celery、redis 

pip install celery 
pip install redis

默认安装celery 最新版是4.0.2 

默认安装redis 最新版是2.10.5

另外不要忘记安装redis服务:

# wget http://download.redis.io/releases/redis-3.2.6.tar.gz# tar xzf redis-3.2.6.tar.gz# cd redis-3.2.6# make# src/redis-server # 启动redis服务,看清楚,这是在你的redis-3.2.6目录下执行的 # src/redis-cli # 启动客户端

2.编写py

直接vim搞起了

$ vim tesks.py
from celery import Celeryfrom celery.schedules import crontabapp = Celery('tasks', broker='redis://localhost:6379/0') @app.on_after_configure.connect def setup_periodic_tasks(sender, **kwargs): # Calls test('hello') every 10 seconds. sender.add_periodic_task(10.0, test.s('hello'), name='add every 10') # Calls test('world') every 30 seconds sender.add_periodic_task(30.0, test.s('world'), expires=10) # Executes every Monday morning at 7:30 a.m. sender.add_periodic_task( crontab(hour=7, minute=30, day_of_week=1), test.s('Happy Mondays!'), ) @app.task def test(arg): print(arg)

按住shift键+Z+Z,保存文件并退出

3.在新命令窗口中启动redis服务

怎么启动? 

进入你的redis目录

$ cd redis-3.2.6$ src/redis-3.2.6

4.在新窗口中启动celery

进入你tasks.py所在目录,执行:

$ celery -A tasks worker --loglevel=info

此时,异步服务已经可用了,但定时任务并没有执行,怎么回事?你还需要再启动另一服务,如下

5.在新窗口中启动beat

还是要进入你tasks.py所在目录,执行:

$ celery -A tasks beat

 

启动后的样子: 

这里写图片描述
看一下第4步的窗口,是不是有打印输出?good!每隔10秒打印一次hello,每隔30秒打印一次world! 
这里写图片描述

具体你的项目要设置多长时间执行任务,可参见官方文档的参数说明。 

附官方文档地址:

附:如何监控Celery?

并行处理框架Celery的Web监控管理服务-Flower 

参见链接 
 

你可能感兴趣的文章
走过电竞之路的程序员
查看>>
Eclipse和MyEclipse使用技巧--Eclipse中使用Git-让版本管理更简单
查看>>
[转]响应式表格jQuery插件 – Responsive tables
查看>>
8个3D视觉效果的HTML5动画欣赏
查看>>
C#如何在DataGridViewCell中自定义脚本编辑器
查看>>
【linux】crontab定时命令
查看>>
Android UI优化——include、merge 、ViewStub
查看>>
Office WORD如何取消开始工作右侧栏
查看>>
Android Jni调用浅述
查看>>
CodeCombat森林关卡Python代码
查看>>
第一个应用程序HelloWorld
查看>>
(二)Spring Boot 起步入门(翻译自Spring Boot官方教程文档)1.5.9.RELEASE
查看>>
Android Annotation扫盲笔记
查看>>
React 整洁代码最佳实践
查看>>
聊聊架构设计做些什么来谈如何成为架构师
查看>>
Java并发编程73道面试题及答案
查看>>
iOS知识小集·设置userAgent的那件小事
查看>>
移动端架构的几点思考
查看>>
Tomcat与Spring中的事件机制详解
查看>>
Spark综合使用及用户行为案例区域内热门商品统计分析实战-Spark商业应用实战...
查看>>