如何使用普通的celery命令运行celery作为守护进程

时间:2014-07-09 07:42:02

标签: python django celery celery-task celeryd

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

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

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

工作正常并在后台成功执行csv文件,但现在我只想守护上面的命令,我搜索任何选项来守护它但我发现任何参数都没有通过{ {1}}守护上述命令。那么无论如何我可以守护上述命令并使芹菜运行吗?

2 个答案:

答案 0 :(得分:0)

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

但建议你使用像systemd这样的东西。 芹菜文档有关于此主题的整页。 [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

答案 1 :(得分:0)

supervisorctl 将是一个更好的选择。

安装:x = [[0.98055614 0.0364636 0.07754052] [0.14524677 0.53440358 0.33880981] [0.0406863 0.14387749 0.08279181]] y_loop = [[0.55729621 0.21680631 0.22589748] [0.27105399 0.40000412 0.32894188] [0.31728829 0.35177859 0.33093312]] y = [[0.55729621 0.21680631 0.22589748] [0.27105399 0.40000412 0.32894188] [0.31728829 0.35177859 0.33093312]]

supervisor 的主要配置文件在这里:sudo apt-get install 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

更新任何 *.conf 文件后重新阅读:$sudo service supervisor restart

记录更新:$sudo supervisorctl reread

要检查特定 *.conf 的状态:$sudo supervisorctl update

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