【发布时间】:2018-06-08 21:13:27
【问题描述】:
背景
系统是Centos7,里面有一个python2.x。 1GB 内存和单核。
我安装了python3.x,我可以将python3编码成python3。
django-celery 项目基于 virtualenv python3.x,我在 nginx、uwsgi、mariadb 上做得很好。至少,我认为没有错误发生。
我尝试使用 supervisor 来控制 django-celery 的 worker,如下所示:
command=env/bin/python project/manage.py celeryd -l INFO -n worker_%(process_num)s
numprocs=4
process_name=projects_worker_%(process_num)s
stdout_logfile=logfile.log
etderr_logfile=logfile_err.log
还有关于芹菜事件,芹菜节拍的设置,这部分很好,没有发生错误。错误来自worker。
当我保持进程大于1时,它首先会运行,当我做supervisorctl status时,一切都在运行。
但是当我再次执行相同的命令查看状态时,某些进程状态会变为正在启动。
于是我尝试了更多次,我发现:worker的状态总是会从running变为starting,然后再从starting变为running——没有停止。
当我在 tmp/supervisor.log 检查主管的日志文件时,它显示如下:
exit status 1; not expected
entered runnging state,process has stayed up for > than 1 seconds(startsecs)
'project_worker_0' with pid 2284
也许它说明了为什么工人总是改变状态。
更重要的是,当我将进程更改为 1 时,worker 可能会失败。worker 的日志显示:
stale pidfile exists.Removing it
但是,我没有将 pidfile 路径添加到 worker。而且,我只是在 / 路径上找到了事件并击败了 pidfie,没有 worker 的 pidfile。另外,我尝试 find / -name *.pid 找到类似的 pidfile工人,或芹菜,但这里不存在。
问题
-
首先,我想部署项目,那么,这里有没有其他方法来部署 django-celery 和 virtulanev 的 celery 部分?
-
如果这里有人能告诉我这种现象是怎么来的,我最好选择主管来部署芹菜部分。任何人都可以帮助我吗?
PS
您的任何想法都可能对我有所帮助,祝您好运!
【问题讨论】:
标签: python django django-celery supervisord