您好,登錄后才能下訂單哦!
這篇文章主要講解了“python如何使用supervisord后臺啟動celery服務”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“python如何使用supervisord后臺啟動celery服務”吧!
Supervisor是用Python開發的一個client/server服務,是Linux/Unix系統下的一個進程管理工具,不支持Windows系統。
它可以很方便的監聽、啟動、停止、重啟一個或多個進程。
用Supervisor管理的進程,當一個進程意外被殺死,supervisort監聽到進程死后,會自動將它重新拉起,很方便的做到進程自動恢復的功能,不再需要自己寫shell腳本來控制。
centos 安裝 supervisord
yum install -y supervisord
debian 安裝 supervisord
apt-get install -y supervisor
安裝完成后在/etc/supervisor
目錄下會有個配置文件 supervisord.conf
# cd /etc/supervisor /etc/supervisor# ls conf.d supervisord.conf
cat 查看內容
# cat supervisord.conf ; supervisor config file [unix_http_server] file=/var/run/supervisor.sock ; (the path to the socket file) chmod=0700 ; sockef file mode (default 0700) [supervisord] logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log) pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid) childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP) ; the below section must remain in the config file for RPC ; (supervisorctl/web interface) to work, additional interfaces may be ; added by defining them in separate rpcinterface: sections [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl] serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket ; The [include] section can just contain the "files" setting. This ; setting can list multiple files (separated by whitespace or ; newlines). It can also contain wildcards. The filenames are ; interpreted as relative to this file. Included files *cannot* ; include files themselves. [include] files = /etc/supervisor/conf.d/*.conf
在項目中我們需要用到此配置,可以在項目根目錄導出一份
echo_supervisord_conf > ./supervisord.conf
supervisord.conf文件內容編寫, 前面內容不用改,直接接著在后面寫
比如我需要后臺啟動celery的worker和beat服務
; Sample supervisor config file. ; ; For more information on the config file, please see: ; http://supervisord.org/configuration.html ; 前面文檔省略,不用刪,接著后面寫 [program:celery-worker] command=celery -A hrun2_web worker -l info ; 管理命令,supervisor不支持后臺進程 process_name=%(program_name)s #user=root ;進程啟動用戶 autostart=true ;是否隨supervisor啟動 autorestart=true ;是否在掛了之后重啟,意外關閉后會重啟,比如kill掉! startretries=3 ;啟動嘗試次數 stderr_logfile=./celery_worker.log ;標準輸出文件 stdout_logfile=./celery_worker.log ;標準輸出文件 loglevel=info ;日志的級別 [program:celery-beat] command=celery -A hrun2_web beat ; 管理命令,supervisor不支持后臺進程 process_name=%(program_name)s #user=root ;進程啟動用戶 autostart=true ;是否隨supervisor啟動 autorestart=true ;是否在掛了之后重啟,意外關閉后會重啟,比如kill掉! startretries=3 ;啟動嘗試次數 stderr_logfile=./celery_beat.log ;標準輸出文件 stdout_logfile=./celery_beat.log ;標準輸出文件 loglevel=info ;日志的級別
啟動服務
supervisord -c /path/supervisord.conf
關閉服務
supervisorctl shutdown
運行過程,啟動沒問題,不顯示任何內容,如果需要關閉用shutdown
root@13107c465557:/code# supervisord -c ./supervisord.conf root@13107c465557:/code# supervisorctl shutdown Shut down
查看啟動的服務
supervisorctl status
執行結果如下
root@13107c465557:/code# supervisorctl status
celery-worker RUNNING pid 234, uptime 0:00:14
celery-beat RUNNING pid 235, uptime 0:00:14
說明啟動了celery和celery-beat兩個服務
我們在配置里面指定了./celery_worker.log
文件保存運行日志,所以可以直接查看這個文件
tail -f celery_worker.log -n 30
運行就可以看到worker運行的日志了
感謝各位的閱讀,以上就是“python如何使用supervisord后臺啟動celery服務”的內容了,經過本文的學習后,相信大家對python如何使用supervisord后臺啟動celery服務這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。