首页 > 解决方案 > Django:生产中的芹菜工人,Ubuntu 18+

问题描述

我正在学习芹菜,我想问:

  1. 当 Django 在 Ubuntu 中启动时,让 Celery 自动运行的最简单方法是什么?现在我celery -A {prj name} worker -l INFO通过终端手动启动。
  2. 我可以进行任何类型的配置,以便 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 的设置。

标签: pythondjangoubunturediscelery

解决方案


  1. 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 个工作人员

  1. Celery 在启动时将获得将使用此代码实例的 wsgi 文件,这意味着您需要重新启动它以应用修改,您不能在生产中添加观察者(内存成本)

推荐阅读