0

我有一个 django 应用程序,我正在使用 celery 任务在后台执行一些 csv 处理,所以我安装了rabbitmq-server这样sudo apt-get install rabbitmq-server的命令,rabbitmq-server 已安装并成功运行。

我在tasks.py应用程序内的模块中有一些芹菜任务代码并运行如下芹菜

celery -A app.tasks worker --loglevel=info

它工作正常并在后台成功执行 csv 文件,但现在我只想守护上面的命令,我搜索了任何守护它的选项,但我没有找到任何要传递-D的参数,比如守护上面的命令。那么无论如何我可以守护上述命令并使芹菜运行吗?

4

2 回答 2

0

我认为您正在寻找--detach选项。[1]

但建议您使用类似 systemd 的东西。celery 文档有一整页关于这个主题。[2]

[1] http://celery.readthedocs.org/en/latest/reference/celery.bin.base.html#daemon-options

[2] http://celery.readthedocs.org/en/latest/tutorials/daemonizing.html

于 2014-12-12T13:18:31.660 回答
0

supervisorctl将是一个更好的选择。

安装:sudo apt-get install supervisor

supervisor的主要配置文件在这里:/etc/supervisor/supervisord.conf

跑去$vim /etc/supervisor/supervisord.conf检查。查看文件,在底部,您会注意到:

[include]
files = /etc/supervisor/conf.d/*.conf

这基本上意味着您的项目的配置文件可以存储在这里/etc/supervisor/conf.d/,它们将被自动包含在内。

运行:sudo vim /etc/supervisor/conf.d/myapp.conf。您的配置可能如下所示:

[program:myapp]
command={{ your celery commands without curly braces }}
directory=/directory/to/myapp
autostart=true
autorestart=true
stderr_logfile=/var/log/myapp.err.log
stdout_logfile=/var/log/myapp.out.log

重启服务:$sudo service supervisor restart

在对任何 *.conf 文件进行更新后重新阅读:$sudo supervisorctl reread

要记录更新:$sudo supervisorctl update

检查特定 *.conf 的状态:sudo supervisorctl status myapp

检查您的日志文件以获取更多状态数据。

于 2021-05-11T10:28:17.297 回答