代码之家  ›  专栏  ›  技术社区  ›  May.D

监督、芹菜和Daemonization-我的配置是否尊重良好实践?

  •  0
  • May.D  · 技术社区  · 7 年前

    我已经使用Apache2部署了一个Django应用程序,并且一直在努力进行芹菜配置。

    第一次尝试:

    我使用systemd对芹菜和芹菜进行了daemonization,如芹菜中所述 documentation . 这是一种使用这种配置的方式(不建议用于生产)

    ExecStart=/path/to/celery/bin/ -A proj worker
    ExecStart=/path/to/celery/bin/ -A proj beat
    

    但我无法让“官方”配置正常工作,比如:

    ExecStart=/bin/sh -c '${CELERY_BIN} multi start ${CELERYD_NODES} \
      -A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
      --logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'
    

    当前配置:

    我读过这个 article (芹菜4个定期任务中)建议使用监督。我就是这么做的,我的配置文件是这样的

    [program:projworker]
    
    command=/path/to/celery/bin/-A proj worker -l info
    

    因此,它实际上与芹菜文档中的disadvised命令相同(尽管对于这两种配置,我都正确设置了projectdir、user和group等)。然而,一切都进展顺利。

    所以最后,我的问题是:这真的尊重好的实践吗?据此, piece 当然,文档管理器可以处理daemonization,但我不确定我是否正确。

    1 回复  |  直到 6 年前
        1
  •  1
  •   2ps    7 年前

    一般来说,我建议使用multi。使用multi的原因是multi提供了一种语法,允许您优雅地启动、停止或重新启动芹菜工人。这就是说,如果您不需要该功能,或者您有一个很好的方法来处理启动、停止和重新启动supervisord,而不使用multi,请继续按照您的方式进行。

    Here is the sample recommended configuration for celery beat with supervisord .