【问题标题】:Disable pidfile for celerybeat禁用 celerybeat 的 pidfile
【发布时间】:2012-06-08 05:27:42
【问题描述】:

celeryd 不需要 pidfile,但 celerybeat 似乎需要。有没有办法禁用它?我正在使用 Upstart 来管理进程,所以使用 pidfile 是多余的。

【问题讨论】:

  • 你有没有运气禁用 pid 文件?
  • 不,即使使用celeryd -B 也会导致创建一个 pid 文件。我基本上放弃了,只是指定了一条解决系统权限限制的路径。
  • 啊,好吧。我遇到了类似的情况,它没有以 root 身份运行,因此无法保存在 /var/run 或等效文件中。我发现这似乎可行:python manage.py celerybeat --schedule=/var/my_app/celerybeat-schedule --pidfile=。我正在通过 Django 运行它,不确定是否有效果。拥有一个=,然后在它似乎停止创建一个之后就什么也没有了。让我知道它是否有帮助。如果是这样,将其作为答案提交!
  • @michael 是一种享受(我也在使用 django-celery)。
  • 这个问题也与 Docker 用户有关。

标签: celery celerybeat


【解决方案1】:

以下似乎对少数人有用,所以我将其作为答案提交:

python manage.py celerybeat --pidfile= --schedule=/var/my_app/celerybeat-schedule

--pidfile=(作为 pidfile arg 的空字符串)似乎停止创建一个。

【讨论】:

  • 非常棒的提示,可以避免 CeleryBeat 创建 PID 文件,然后才能看到他必须在 Django conf 中创建另一个文件
  • 想提一下,我刚刚在主管上试过这个,它就像一个魅力:)
  • 完美解决方案!
  • 为我工作!非常适合在 Docker 中使用 celery。
【解决方案2】:

所以对我来说,我在我的开发docker-compose.yml 文件中修改了以下内容:

web
    ...
    command: bash -c "python3 manage.py makemigrations && python3 manage.py migrate --run-syncdb && python3 manage.py runserver 0.0.0.0:8982"

到:

web
    ...
    command: bash -c "rm -rf celerybeat.pid && python3 manage.py makemigrations && python3 manage.py migrate --run-syncdb && python3 manage.py runserver 0.0.0.0:8982"

我确定有一种更优雅的方法可以在启动甚至关闭时清理此文件?

【讨论】:

    【解决方案3】:

    从基本目录中删除 celerybeat.pid 帮助我解决了这个问题

    【讨论】:

    • 这对我来说适用于 docker-compose 环境。
    猜你喜欢
    • 2011-09-01
    • 2016-12-15
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2013-11-21
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多