为什么主管让芹菜工人改变形式一直在运行?

问题描述 投票:0回答:1

backgroud

系统是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。另外,我尝试使用find / -name *.pid找到像worker或者celeryd这样的pidfile,但是这里不存在。

question

  • 首先,我想部署项目,所以,在这里用其他任何方式来部署django-celery与virtulanev的芹菜部分?
  • 如果有人能告诉我这种现象是怎么来的,我最好选择主管来部署芹菜部分。任何人都可以帮助我吗?

PS

你的任何想法都可能对我有所帮助,祝你好运!

python django django-celery supervisord
1个回答
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: 在centos环境中输出C_FORCE_ROOT ='true'#

要解决的行动(在遇到这样的错误之后)

  • export C_FORCE_ROOT='true'添加到centos环境文件并获取它。
  • 检查命令'env / bin / python project / manage.py celeryd',它是否成功运行。
  • 重启监督。请注意!不是supervisorctl reload,它只是重新加载.conf文件,而不是环境文件。尝试杀死进程supervisord -c xx.confps aux | grep supervisordkill -9 process_number,小心)。

关于博客的一些网址

© www.soinside.com 2019 - 2024. All rights reserved.