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

时间:2017-12-28 10:09:30

标签: python django django-celery supervisord

化背景

系统是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的芹菜部分吗?

  • 如果有人能告诉我这种现象是怎么来的,我最好选择主管来部署芹菜部分。有人可以帮我解决这个问题吗?

PS

您的任何想法都可能对我有所帮助,祝福!

1 个答案:

答案 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.confps aux | grep supervisordkill -9 process_number,请注意)。

关于博客的一些网址