系统是Centos7,它有一个python2.x。 1GB内存和单核。
我安装了python3.x,我可以将python3编译成python3。
django-celery项目基于virtualenv python3.x,我在nginx,uwsgi,mariadb上做得很好。至少,我认为没有错误发生。
我尝试使用主管控制django-celery的工作人员,如下所示:
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
还有关于芹菜事件,芹菜节拍的设定,这部分很好,没有错误发生。错误来自工人。
当我保持过程大于1时,它会首先运行,当我执行supervisorctl status
时,它们都在运行。
但是,当我执行相同的命令再次查看状态时,某些进程状态将更改为启动。
所以我尝试了更多次,我发现:工人的状态总是从跑步变为开始,然后从开始变为跑步 - 不停止。
当我在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时,工人可能会失败。工人的日志告诉我:
stale pidfile exists.Removing it
但是,我并没有将pidfile路径发送到worker.And,我只是在/
路径找到了事件并且击败了pidfie,没有工作人员的pidfile.Also,我尝试find / -name *.pid
来找到像worker或celeryd这样的pidfile,但这里不存在。
首先,我想部署项目,所以,在这里用其他任何方式来部署django-celery和virtulanev的芹菜部分吗?
如果有人能告诉我这种现象是怎么来的,我最好选择主管来部署芹菜部分。有人可以帮我解决这个问题吗?
您的任何想法都可能对我有所帮助,祝福!
答案 0 :(得分:0)
最后,我昨天晚上解决了这个问题。
我让项目在Windows 10系统上运行成功,但是当我将项目更改为centos7时没有检查。+。命令:env/bin/python project/manage.py celeryd
无法成功运行。因此,主管会启动一个很快就会失败的流程。
为什么命令无法成功?我有pip安装了所有的包需要。但它显示错误如下:
当工作人员接受使用pickle序列化的邮件时,运行具有超级用户权限的工作人员是一个非常糟糕的主意!
如果你真的想继续,那么你必须设置C_FORCE_ROOT 环境变量(但请在考虑之前考虑一下)。
用户信息:uid = 0 euid = 0 gid = 0 egid = 0
我尝试搜索一些关于此错误的博客,并获取anser:
导出C_FORCE_ROOT =' true' #on centos enviroument
将export C_FORCE_ROOT='true'
添加到centos的环境文件中并将其获取。
检查命令' env / bin / python project / manage.py celeryd',是否成功运行。
重新启动supervisord。请注意!不是supervisorctl reload
,它只是重新加载.conf文件,而不是环境文件。尝试终止流程supervisord -c xx.conf
(ps aux | grep supervisord
和kill -9 process_number
,请注意)。