首页 > 解决方案 > 如何使用 supervisord 将 Celery worker 作为守护进程运行

问题描述

我正在尝试在系统celery的帮助下在后台运行。我有一个位于目录中的应用程序。我按照以下步骤在后台运行 celery:supervisordubuntuFlask~/celery

#install supervisor
sudo apt-get install supervisor

在以下位置创建配置/etc/supervisor/conf.d/celery.conf

[program:celery]
directory=~/celery
command=cd ~/celery && /home/ubuntu/.local/bin/celery -A batch.celery worker -f celery.logs --loglevel=INFO
numprocs=1
autostart=true
autorestart=true
user=ubuntu

但是我spawn在启动它时遇到了错误。

我的supervisor.log

2021-08-25 07:17:18,286 INFO spawned: 'celery' with pid 699710
2021-08-25 07:17:18,316 INFO exited: celery (exit status 2; not expected)
2021-08-25 07:17:19,320 INFO spawned: 'celery' with pid 699711
2021-08-25 07:17:19,350 INFO exited: celery (exit status 2; not expected)
2021-08-25 07:17:21,356 INFO spawned: 'celery' with pid 699712
2021-08-25 07:17:21,386 INFO exited: celery (exit status 2; not expected)
2021-08-25 07:17:24,392 INFO spawned: 'celery' with pid 699715
2021-08-25 07:17:24,423 INFO exited: celery (exit status 2; not expected)
2021-08-25 07:17:25,424 INFO gave up: celery entered FATAL state, too many start retries too quickly

当我转到我的~/celery目录并尝试运行时:

celery -A batch.celery worker -f celery.logs -- loglevel=INFO

它运行正常。

帮我在后台运行 celery。

标签: pythoncelerycelery-task

解决方案


它被称为守护芹菜工人。

在此处查看文档

https://docs.celeryproject.org/en/3.1/tutorials/daemonizing.html

$ sudo update-rc.d celeryd 默认值 $ sudo service celeryd start


推荐阅读