Celery+python+redis异步执行定时任务
我之前的一篇文章中写了【Celery+django+redis异步执行任务】
博文:http://blog.csdn.net/apple9005/article/details/54236212
你会发现,这些代码并不依赖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 Celery
from celery.schedules import crontab
app = 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!
具体你的项目要设置多长时间执行任务,可参见官方文档的参数说明。
附官方文档地址:http://docs.celeryproject.org/en/latest/
附:如何监控Celery?
并行处理框架Celery的Web监控管理服务-Flower
参见链接
https://my.oschina.net/u/2306127/blog/420929
http://flower-docs-cn.readthedocs.io/zh/latest/index.html
Celery+python+redis异步执行定时任务的更多相关文章
- 日夕如是寒暑不间,基于Python3+Tornado6+APScheduler/Celery打造并发异步动态定时任务轮询服务
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_220 定时任务的典型落地场景在各行业中都很普遍,比如支付系统中,支付过程中因为网络或者其他因素导致出现掉单.卡单的情况,账单变成了 ...
- Celery框架实现异步执行任务
Celery 官方 Celery 官网:http://www.celeryproject.org/ Celery 官方文档英文版:http://docs.celeryproject.org/en/la ...
- Django Celery Redis 异步执行任务demo实例
一.windows中安装redis 安装过程见 <在windows x64上部署使用Redis> 二.环境准备 requirements.txt Django==1.10.5 celery ...
- Celery - 一个懂得 异步任务 , 定时任务 , 周期任务 的芹菜
1.什么是Celery?Celery 是芹菜Celery 是基于Python实现的模块, 用于执行异步定时周期任务的其结构的组成是由 1.用户任务 app 2.管道 broker 用于存储 ...
- 如何使用django+celery+RabbitMQ实现异步执行
1)安装需要安装RabbitMQ.Celery和Django-celeryCelery和Django-celery的安装直接pip就好 2)修改settings.py在INSTALLED_APPS中加 ...
- 使用django+celery+RabbitMQ实现异步执行
http://www.yu180.com/group/view/259 推荐一个解决框架 https://github.com/maccman/juggernaut Realtime server p ...
- django+celery+redis实现运行定时任务
0.目的 在开发项目中,经常有一些操作时间比较长(生产环境中超过了nginx的timeout时间),或者是间隔一段时间就要执行的任务. 在这种情况下,使用celery就是一个很好的选择. cele ...
- celery异步任务 定时任务
以前项目中用到过 celery ,但是没怎么记笔记,现在在记一下,方便以后用. Celery.png 问:Celery 是什么? 答:Celery 是一个由 Python 编写的简单.灵活.可靠的 ...
- Django+Celery+xadmin实现异步任务和定时任务
Django+Celery+xadmin实现异步任务和定时任务 关注公众号"轻松学编程"了解更多. 一.celery介绍 1.简介 [官网]http://www.celerypro ...
随机推荐
- div 模糊效果
-webkit-filter:blur(3px); -moz-filter:blur(3px); filter:url(blur.svg#blur); filter: progid:DXImageTr ...
- 【laravel5.4】迁移文件的生成、修改、删除
建议直接去官方文档查看: https://laravel-china.org/docs/laravel/5.4/migrations#creating-columns 1.生成迁移: 主要方式:1.创 ...
- 如何判断微信内置浏览器(JS & PHP)
转自:http://blog.wpjam.com/m/is_weixin/ 为什么要进行判断呢?answer:微信授权登录,微信支付都可以 微信内置浏览器的 User Agent 如何判断微信内置浏览 ...
- 微信小程序:酒店订房之时间选择器 picker
下单页面,选择开始日期和结束日期,不废话,直接代码: 1.wxml: <picker mode="date" value="{{date1}}" star ...
- protobuf配置与使用
Protobuf配置与安装 1 安装与配置 1.protobuf是google公司提出的数据存储格式,详细介绍可以参考:https://code.google.com/p/protobuf/ 2.下载 ...
- SQLite简单介绍
一.离线缓存 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等. 说明:离线缓存一般都是把数据保存到项目的沙盒中.有以下几种方式 (1)归档:NSCodeing.NSKeyed ...
- iOS 网络编程 TCP/UDP HTTP
一.HTTP协议的主要特点: 1. CS模式 2. 简单快速:只需要传送请求方法和路径.(常用方法有GET,HEAD,POST) 3. 灵活:任意对象都可以,类型由Content-Type加以标记 4 ...
- Android Developers:使ListView滑动流畅
流畅滑动ListView的关键是保持应用程序的主线程(UI线程)从免于繁重处理.确保你的任何硬盘访问,网络访问或者SQL访问在一个单独的线程中.为了测试你的应用个程序的状态,你能启动StrictMod ...
- PLSQL_统计信息系列08_统计信息生成和还原
2015-02-01 Created By BaoXinjian
- Vue 最传统的新增行,删除行,提交的数据整合
index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...