问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Django 中利用 celery 设置定时任务

发布网友 发布时间:2024-10-07 19:17

我来回答

1个回答

热心网友 时间:2024-10-07 19:34

Celery 是一个高效的基于分布式消息传递的作业队列,主要通过消息传递任务,通常使用一个叫 Broker(中间人)来协调 client(任务的发出者)和 worker(任务的处理者)。clients 发出消息到队列中,broker 将队列中的信息派发给 Celery worker 来处理。Celery 本身不提供消息服务,它支持的消息服务 (Broker) 有 RabbitMQ 和 Redis。小编一般推荐 Redis,因为其在 Django 项目中还是首选的缓存后台。

Celery 架构由三个模块组成:消息中间件(message worker),任务执行单元(worker)和任务执行结果存储(task result store)组成。

redis 是一种运行速度很快,并发很强的跑在内存上的 NoSql 数据库,支持键到五种数据类型的映射。

1、下载并安装 redis
redis 默认安装路径:/usr/local/bin

2、redis 的配置
(1)将 redis 的配置文件拷贝到新建的目录 myredis-config 下。
(2)redis 默认不是后台启动,需要修改配置文件。
一旦启动成功就没有控制台输入了,即使是按 Ctril+C 服务会立即停止,这里需要采用守护进程的方式。
(3)关闭 redis 服务
或者 kill -9 PID 方式强制杀死进程。
(4)设置密码

3、redis manager 链接测试
(1)修改配置文件 /usr/local/bin/myredis-config/redis.conf
将 bind 127.0.0.1 改为 bind 0.0.0.0,将 protected-mode yes 改为 protected-mode no。若 Django 和 Redis 在同一台服务器,下面设置无需修改。
(2)iptables 对端口进行放行
此规则只做参考,本人实验环境中开启了 iptables ,不添加此规则无法连接 redis。
(3)运行 Redis 管理工具,默认情况下不用输入密码。

三、Celery 安装与配置
1、相关软件包安装
注:django-celery-results 建议指定版本号安装,新的版本 2.5.1 存在任务名称(task name) 不显示的情况,建议安装 2.2.0 版本。

2、新增文件
taskApp 目录下面新增了 "tasks.py",myproject 下面新增加了 "celery.py"。
涉及需要修改的文件为: taskApp 下的 "tasks.py",myproject 下面的 "__init__.py"、"celery.py"、"settings.py"。

3、settings.py 修改部分

4、__init__.py 配置修改

5、celery.py 配置修改

6、tasks.py 配置修改

5、数据库迁移

6、启动任务调度器 beat
(1)开启 redis 服务
(2)开启任务调度器
(3)开启 celery worker
(4)编写 shell 实现后台启动
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... Django进阶:万字长文教你使用Celery执行异步和周期性任务(多图)_百度知... 途观lcarplay无线连接方法是什么? 描写海面广阔的成语急 描写海面四字成语 海面的四字成语 求:平面n刀切几块的公式(1刀2块 2刀4块 3刀7块 )。 想要切割瓷砖不崩边,应该怎么弄呢 用什么方法可以把已经贴好的瓷砖拆出来 墙面上已经安装好的瓷砖如何打磨 [互动]已经铺贴好的墙面瓷砖如何切割 血压值多少为正常 成年血压正常值是多少 一个蛋糕怎样用3刀切成7快,还要每朵都有奶油 以某某某,我想对你说为题写一篇作文600字,谢谢 以谢谢您老师为题写一篇作文。帮帮忙,新颖贴切。求 作文谢谢您老师600字后尾以“一朵花…” 堤防工程风险评价理论及应用目录 堤防工程风险评价理论及应用内容简介 杰克缝纫机回车时针脚小咋办 高铁王卡和米粉卡哪个好? celery是什么意思英? celery是什么意思译? 儿童总是便秘如何调理 小孩拉不出来大便怎么办 小儿便秘怎么办如何快速排便 淘宝买了一个油箱,回来以后一看都变形不能用了,淘宝和卖家商量好退货... 纸嫁衣4第五章百祭轩在哪 纸嫁衣4第五章怎么打开暗门-暗门打开方法 纸嫁衣4红丝缠第五章百祭轩位置介绍纸嫁衣4红丝缠第五章百祭轩在... 云南农信三惠贷是什么 玩具车三月份上旬平均每天生产变形金刚840个 中旬平均每天生产850个... 李师傅六月份作零件9400,其中上旬做的个数是中旬的3分之4,下旬是... 某车间6月上旬生产零件的次品数如下(单位:个):0、2、0、2、3、0、2... ...中旬生产总数的1/3,下旬还要生产多少个才能超产1/10? ...已知上旬完成了任务的2/5中旬完成了任务的1/3,剩下的40个零件... Celery笔记八之数据库操作定时任务 魔兽世界流沙之鳞声望怎么获得-流沙之鳞声望获得方法 流沙之鳞声望提升 流沙之鳞的声望怎么刷 流沙之鳞声望怎么刷?