我有一个django应用程序,我正在使用celery任务在后台执行一些csv处理,所以我安装了rabbitmq-server
,如sudo apt-get install rabbitmq-server
,通过此命令,rabbitmq-server已安装并运行成功。
我在应用程序内的tasks.py
模块中有一些芹菜任务代码,并运行芹菜,如下所示
celery -A app.tasks worker --loglevel=info
工作正常并在后台成功执行csv文件,但现在我只想守护上面的命令,我搜索任何选项来守护它但我发现任何参数都没有通过{ {1}}守护上述命令。那么无论如何我可以守护上述命令并使芹菜运行吗?
答案 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
检查您的日志文件以获取更多状态数据。