[英]Why the supervisor make the celery worker changing form running to starting all the time?
系統是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。而且,我只是在/
路徑中找到了事件的pidfie並擊敗了pidfie,沒有worker的pidfile。此外,我嘗試find / -name *.pid
以查找類似於worker的pidfile或芹菜,但此處不存在。
首先,我想部署該項目,因此,在這里是否還有其他方法來部署virtulanev的芹菜部分的django-celery?
如果有人可以告訴我這種現象是怎么發生的,我最好選擇主管來部署芹菜部分。 有人可以幫我嗎?
最好的祝願,您的任何想法都可能對我有幫助!
最后,我昨天晚上解決了這個問題。
我使項目可以在Windows 10系統上成功運行,但是在將項目更改為centos7。+時沒有進行檢查。 命令: env/bin/python project/manage.py celeryd
無法成功運行。 因此,主管將啟動一個過程,該過程將很快失敗。
為什么命令無法成功? 我已經安裝了所有軟件包所需的pip。 但下面顯示錯誤:
當工作人員接受用pickle序列化的消息時,以超級用戶權限運行工作人員是一個非常糟糕的主意!
如果您確實要繼續,則必須設置C_FORCE_ROOT環境變量(但是請先考慮這一點)。
用戶信息:uid = 0 euid = 0 gid = 0 egid = 0
我嘗試搜索有關此錯誤的博客,並獲得分析器:
在centos環境下導出C_FORCE_ROOT ='true'#
將export C_FORCE_ROOT='true'
添加到centos的環境文件中並獲取它。
檢查命令“ env / bin / python project / manage.py celeryd”,是否運行成功。
重新啟動監督者。 請注意! 不是supervisorctl reload
,它只是重新加載.conf文件,而不是環境文件。 嘗試殺死進程supervisord -c xx.conf
( ps aux | grep supervisord
supervisord -c xx.conf
並kill -9 process_number
,注意)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.