【问题标题】:Django: Celery worker in production, Ubuntu 18+Django:生产中的芹菜工人,Ubuntu 18+
【发布时间】:2020-11-19 10:29:17
【问题描述】:

我正在学习Celery,我想问一下:

  1. 当 Django 在 Ubuntu 中启动时,让 Celery 自动运行的最简单的方法是什么?现在我通过终端手动启动celery -A {prj name} worker -l INFO
  2. 我是否可以进行任何类型的配置,以便 Celery 捕获 tasks.py 代码中的更改而无需重新启动 Celery?现在我ctrl+c 并在每次更改tasks.py 代码中的内容时输入celery -A {prj name} worker -l INFO。如果我可以让 Celery 自动启动,我可以预见生产中的这种方法会出现问题 ==> 需要重新启动 Ubuntu 吗?

(设置:VPS,Django,Ubuntu 18.10(无 docker),无外部资源,使用 Redis(自动启动)

我知道这是与Django-Celery in productionHow to ... 类似的问题,但仍然有点不清楚,因为它指的是亚马逊并且还使用shell 脚本、crontabs。这些东西不能开箱即用似乎有点奇怪。

我怀疑我误解了 Celery 的设置。

【问题讨论】:

    标签: python django ubuntu redis celery


    【解决方案1】:
    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 文件,这意味着您需要重新启动它以应用修改,您无法在生产中添加观察程序(内存成本)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-11
      • 2014-08-17
      • 2019-09-30
      • 2018-06-11
      • 2022-01-08
      • 2014-06-09
      相关资源
      最近更新 更多