python - Django:生产中的芹菜工人,Ubuntu 18+
问题描述
我正在学习芹菜,我想问:
- 当 Django 在 Ubuntu 中启动时,让 Celery 自动运行的最简单方法是什么?现在我
celery -A {prj name} worker -l INFO
通过终端手动启动。 - 我可以进行任何类型的配置,以便 Celery 捕获
tasks.py
代码中的更改而无需重新启动 Celery?现在ctrl+c
,我celery -A {prj name} worker -l INFO
每次更改tasks.py
代码中的内容时都会输入。如果我可以让 Celery 自动启动,我可以预见生产中的这种方法会出现问题 ==> 需要重新启动 Ubuntu 吗?
(设置:VPS,Django,Ubuntu 18.10(无 docker),无外部资源,使用 Redis(自动启动)
我知道这与生产中的 Django-Celery和如何...类似的问题......但仍然有点不清楚,因为它指的是亚马逊并且还使用 shell 脚本、crontabs。这些东西不能开箱即用似乎有点奇怪。
我怀疑我误解了 Celery 的设置。
解决方案
Celery
我有一个在生产中启动的部署脚本。在生产中最好启动 worker :
celery multi stop 5
celery multi start 5 -A {prj name} -Q:1 default -Q:2,3 QUEUE1 -Q:4,5 QUEUE2 --pidfile="%n.pid"
这将停止并为不同的队列启动 5 个工作人员
- Celery 在启动时将获得将使用此代码实例的 wsgi 文件,这意味着您需要重新启动它以应用修改,您不能在生产中添加观察者(内存成本)
推荐阅读
- python - 在更改为字符串/字节后编码/解码图像数据
- javascript - 使用 php echo 解析 javascript 代码
- excel - 如何修复运行时错误“13”:与 VBA 代码产生共鸣的类型不匹配?
- python-3.x - 映射应用于作用于字符串列表的函数
- python - 无法从字典中绘制数据
- node.js - 如何从 node.js 应用程序访问 AWS cloudHSM?
- excel - 有没有办法自动汇总批量数据?
- java - Spring json映射具有不同名称的元素以列出
- python - 将已部署的烧瓶应用程序连接到托管在另一台服务器/提供商上的数据库
- mysql - 如何使用 group by 和 order by 获取重复行?