celery结合redis 使用
使用 Redis¶
配置¶
配置非常简单,只需要设置 Redis 数据库的位置:
- BROKER_URL = 'redis://localhost:6379/0'
URL 的格式为:
- redis://:password@hostname:port/db_number
URL Scheme 后的所有字段都是可选的,并且默认为 localhost 的 6479 端口,使用数据库 0。
可见性超时¶
可见性超时时间定义了等待职程在消息分派到其他职程之前确认收到任务的秒数。一定要阅读下面的 警示 一节。
这个选项通过 BROKER_TRANSPORT_OPTIONS 设置:
- BROKER_TRANSPORT_OPTIONS = {'visibility_timeout': 3600} # 1 hour.
Redis 的默认可见性超时时间是 1 小时。
结果¶
如果你也想在 Redis 中存储任务的状态和返回值,你应该配置这些选项:
- CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
Redis 结果后端支持的选项列表见 Redis backend settings 。
警示¶
广播信息默认队所有虚拟主机可见。
你需要设置一个传输选项来给消息加上前缀,这样消息只会被活动的虚拟主机收到:
- BROKER_TRANSPORT_OPTIONS = {'fanout_prefix': True}
注意,你将不能与运行老版本的职程或没有启用这个选项的职程通信。
这个选项在以后将会使默认的,迁移宜早不宜迟。
如果任务没有在 可见性超时 内确认接收,任务会被重新委派给另一个职程并执行。
这会在预计到达时间/倒计时/重试这些执行时间超出可见性超时时间的任务上导致问题;事实上如果超时,任务将循环重新执行。
所以你需要增大可见性超时时间,以符合你计划使用的最长预计到达时间。
注意 Celery 会在职程关闭的时候重新分派消息,所以较长的可见性超时时间只会造成在断电或强制终止职程之后“丢失”任务重新委派的延迟。
周期任务不会受可见性超时影响,因为这是一个与预计到达时间/倒计时不同的概念。
你可以配置同名的传输选项来增大这个时间:
- BROKER_TRANSPORT_OPTIONS = {'visibility_timeout': 43200}
这个值必须是整数,单位是秒。
监视事件(用于 flower 或其他工具)是全局的,并且不会受虚拟主机设置的影响。
1这是 Redis 带来的限制。Redis PUB/SUB 信道是全局的,并且不受数据库序号影响。
Redis 在某些情况会从数据库中驱除键。
如果你遇到了类似这样的错误:
- InconsistencyError, Probably the key ('_kombu.binding.celery') has been
- removed from the Redis database.
你可以配置 Redis 服务器的 timeout 参数为 0 来避免键被驱逐。
- InconsistencyError, Probably the key ('_kombu.binding.celery') has been
celery结合redis 使用的更多相关文章
- Celery+python+redis异步执行定时任务
我之前的一篇文章中写了[Celery+django+redis异步执行任务] 博文:http://blog.csdn.net/apple9005/article/details/54236212 你会 ...
- Python celery和Redis入门安装使用(排难帖)
1.redis安装 下载地址 https://github.com/MicrosoftArchive/redis/releases,选择Redis-x64-3.2.100.msi5.8 MB下载就好了 ...
- Celery 和 Redis 入门
Celery 是一个广泛应用于网络应用程序的任务处理系统. 它可以在以下情况下使用: 在请求响应周期中做网络调用.服务器应当立即响应任何网络请求.如果在请求响应周期内需要进行网络调用,则应在周期外完成 ...
- celery 任务队列 + redis
Celery 是一个“自带电池”的的任务队列.它易于使用,所以你可以无视其所解决问题的复杂程度而轻松入门.它遵照最佳实践设计,所以你的产品可以扩展,或与其他语言集成,并且它自带了在生产环境中运行这样一 ...
- 微信管理系统基于Flask+Vue+Celery+SQLAlchemy+Redis等实现
https://zhuanlan.zhihu.com/p/28102858 现在绝大多数同学都在使用微信,不过微信有很多限制,比如: 微信聊天记录只保存在本地,换个手机那些内容就找不到了 微信扫码加群 ...
- django使用celery搭配redis配置定时任务
已经安装环境: Python3.6 django==2.1.8(用2.2.2需要升级sqlite3) 项目名称:ceshiproject APP名称:ceshi 第一步:centos7下首先安装r ...
- Celery配置Redis数据库保存Return结果状态
使用windows版本 1.于GitHUB下载https://github.com/ServiceStack/redis-windows Window版本,到路径: 2. 运行路径下:D:\redis ...
- django+celery+redis环境搭建
初次尝试搭建django+celery+redis环境,记录下来,慢慢学习~ 1.安装apache 下载httpd-2.0.63.tar.gz,解压tar zxvf httpd-2.0.63.tar. ...
- python 关于celery的异步任务队列的基本使用(celery+redis)【无配置文件设置】
环境说明: window7 X64 python 2.7.6 .celery 3.1.25.redis 2.10.6 本地安装的redis服务端版本号:Redis-x64-3.2.100 工程结构说明 ...
随机推荐
- 函数传参和firture传参数request
前言 为了提高代码的复用性,我们在写用例的时候,会用到函数,然后不同的用例去调用这个函数.比如登录操作,大部分的用例都会先登录,那就需要把登录单独抽出来写个函数,其它用例全部的调用这个登陆函数就行.但 ...
- Unity3D-Canvas-UIScaleMode
UnityCanvasUI自适应部分 用Canvas下的自适应UI Scale Mode: Constant Pixel Size:固定像素大小,无论如何UI怎么样就怎么样,只能通过 Scale Fa ...
- Unity Audio Source Properties
Audio Clip 音频剪辑 将播放声音的剪辑文件 Mute 静音 Bypass Effects 直通效果 应用音频源的快速“直通”过滤效果.一个简单的方法来打开/关闭所有特效 Output 产量 ...
- Jmeter运行后,查看结果树中的响应数据出现中文乱码。
参考:https://blog.csdn.net/qq_15228737/article/details/82597482 https://baike.baidu.com/item/UTF-8/481 ...
- 1.parrot os 3.5-----nmap-----katoolin--zenmap
源:https://www.youtube.com/watch?v=LpM1KooILRc&list=PLBf0hzazHTGOEuhPQSnq-Ej8jRyXxfYvl&index= ...
- 【Linux开发】jpeglib使用指南
您可以到www.ijg.org网站下载libjpeg的源码, IJG JPEG Library就是jpeg压缩库,是以源码的形式提供给软件开发人员的,当然在软件包里也有编译好的库文件,我们这里就只用到 ...
- BusyBox TFTP使用(转)
开发板上使用TFTP 帮助信息: BusyBox v1.13.3 (2009-03-25 15:48:45 CST) multi-call binary Usage: tftp [OPTION]... ...
- vue使用笔记二
es6\es2015特性http://lib.csdn.net/article/reactnative/58021?knId=1405 使用express-generator初始化你的项目目录http ...
- loli的测试-2018.12.9
模拟赛-2018.12.9 这是NOIP之后第一次模拟赛...但是考的比较悲惨. 非常喜欢写考试总结,不知道为什么... T1:https://www.luogu.org/problemnew/sho ...
- egg框架实现表单验证及获取验证的错误信息
最近再看egg框架 是阿里今年开源的一款基于nodejs的mvc架构的web框架 感兴趣的同学可以看看 因为之前一直做php的关系 在tp,yii,laravel这些框架中对于前台发送的数据,模型里都 ...