python測(cè)試開發(fā)django之使用supervisord?后臺(tái)啟動(dòng)celery?服務(wù)(worker/beat)
前言
Supervisor(‘http://supervisord.org/’)是用Python開發(fā)的一個(gè)client/server服務(wù),是Linux/Unix系統(tǒng)下的一個(gè)進(jìn)程管理工具,不支持Windows系統(tǒng)。
它可以很方便的監(jiān)聽、啟動(dòng)、停止、重啟一個(gè)或多個(gè)進(jìn)程。
用Supervisor管理的進(jìn)程,當(dāng)一個(gè)進(jìn)程意外被殺死,supervisort監(jiān)聽到進(jìn)程死后,會(huì)自動(dòng)將它重新拉起,很方便的做到進(jìn)程自動(dòng)恢復(fù)的功能,不再需要自己寫shell腳本來控制。
環(huán)境準(zhǔn)備
centos 安裝 supervisord
yum install -y supervisord
debian 安裝 supervisord
apt-get install -y supervisor
supervisord.conf
安裝完成后在/etc/supervisor 目錄下會(huì)有個(gè)配置文件 supervisord.conf
# cd /etc/supervisor /etc/supervisor# ls conf.d supervisord.conf
cat 查看內(nèi)容
# 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在項(xiàng)目中我們需要用到此配置,可以在項(xiàng)目根目錄導(dǎo)出一份
echo_supervisord_conf > ./supervisord.conf
文件內(nèi)容編寫
supervisord.conf文件內(nèi)容編寫, 前面內(nèi)容不用改,直接接著在后面寫
比如我需要后臺(tái)啟動(dòng)celery的worker和beat服務(wù)
; 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不支持后臺(tái)進(jìn)程 process_name=%(program_name)s #user=root ;進(jìn)程啟動(dòng)用戶 autostart=true ;是否隨supervisor啟動(dòng) autorestart=true ;是否在掛了之后重啟,意外關(guān)閉后會(huì)重啟,比如kill掉! startretries=3 ;啟動(dòng)嘗試次數(shù) stderr_logfile=./celery_worker.log ;標(biāo)準(zhǔn)輸出文件 stdout_logfile=./celery_worker.log ;標(biāo)準(zhǔn)輸出文件 loglevel=info ;日志的級(jí)別 [program:celery-beat] command=celery -A hrun2_web beat ; 管理命令,supervisor不支持后臺(tái)進(jìn)程 process_name=%(program_name)s #user=root ;進(jìn)程啟動(dòng)用戶 autostart=true ;是否隨supervisor啟動(dòng) autorestart=true ;是否在掛了之后重啟,意外關(guān)閉后會(huì)重啟,比如kill掉! startretries=3 ;啟動(dòng)嘗試次數(shù) stderr_logfile=./celery_beat.log ;標(biāo)準(zhǔn)輸出文件 stdout_logfile=./celery_beat.log ;標(biāo)準(zhǔn)輸出文件 loglevel=info ;日志的級(jí)別
啟動(dòng)服務(wù)
啟動(dòng)服務(wù)
supervisord -c /path/supervisord.conf
關(guān)閉服務(wù)
supervisorctl shutdown
運(yùn)行過程,啟動(dòng)沒問題,不顯示任何內(nèi)容,如果需要關(guān)閉用shutdown
root@13107c465557:/code# supervisord -c ./supervisord.conf root@13107c465557:/code# supervisorctl shutdown Shut down
查看啟動(dòng)的服務(wù)
supervisorctl status
執(zhí)行結(jié)果如下
root@13107c465557:/code# supervisorctl status
celery-worker RUNNING pid 234, uptime 0:00:14
celery-beat RUNNING pid 235, uptime 0:00:14
說明啟動(dòng)了celery和celery-beat兩個(gè)服務(wù)
查看日志
我們?cè)谂渲美锩嬷付?code>./celery_worker.log 文件保存運(yùn)行日志,所以可以直接查看這個(gè)文件
tail -f celery_worker.log -n 30
運(yùn)行就可以看到worker運(yùn)行的日志了
參考教程 http://www.dhdzp.com/article/146238.htm
到此這篇關(guān)于python測(cè)試開發(fā)django之使用supervisord后臺(tái)啟動(dòng)celery服務(wù)(worker/beat)的文章就介紹到這了,更多相關(guān)supervisord后臺(tái)啟動(dòng)celery服務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 在python3中使用Supervisor的詳細(xì)教程
- 使用 Supervisor 監(jiān)控 Python3 進(jìn)程方式
- Python supervisor強(qiáng)大的進(jìn)程管理工具的使用
- python進(jìn)程管理工具supervisor的安裝與使用教程
- 基于Python 的進(jìn)程管理工具supervisor使用指南
- Python使用Supervisor來管理進(jìn)程的方法
- python進(jìn)程管理工具supervisor使用實(shí)例
- 使用Python的Supervisor進(jìn)行進(jìn)程監(jiān)控以及自動(dòng)啟動(dòng)
- python進(jìn)程管理工具supervisor安裝使用
相關(guān)文章
keras分類之二分類實(shí)例(Cat and dog)
這篇文章主要介紹了keras分類之二分類實(shí)例(Cat and dog),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07
OpenCV搞定騰訊滑塊驗(yàn)證碼的實(shí)現(xiàn)代碼
這篇文章主要介紹了OpenCV搞定騰訊滑塊驗(yàn)證碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
基于并發(fā)服務(wù)器幾種實(shí)現(xiàn)方法(總結(jié))
下面小編就為大家分享一篇基于并發(fā)服務(wù)器幾種實(shí)現(xiàn)方法(總結(jié)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-12-12
Python模塊結(jié)構(gòu)與布局操作方法實(shí)例分析
這篇文章主要介紹了Python模塊結(jié)構(gòu)與布局操作方法,結(jié)合實(shí)例形式分析了Python模塊與布局的相關(guān)概念、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-07-07
Python使用unittest進(jìn)行有效測(cè)試的示例詳解
這篇文章主要介紹了如何使用?unittest?來編寫和運(yùn)行單元測(cè)試,希望通過閱讀本文,大家能了解?unittest?的基本使用方法,以及如何使用?unittest?中的斷言方法和測(cè)試用例組織結(jié)構(gòu)2023-06-06
Python sklearn中的.fit與.predict的用法說明
這篇文章主要介紹了Python sklearn中的.fit與.predict的用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06
用python寫一個(gè)windows下的定時(shí)關(guān)機(jī)腳本(推薦)
由于本人經(jīng)常使用筆記本共享WiFi,但是又不想筆記本開機(jī)一夜,每次都是使用dos命令關(guān)機(jī),感覺好麻煩,然后小編想到用python寫一個(gè)定時(shí)關(guān)機(jī)的腳本,具體實(shí)例代碼請(qǐng)參考本文2017-03-03
numpy創(chuàng)建神經(jīng)網(wǎng)絡(luò)框架
本文介紹了使用numpy從零搭建了一個(gè)類似于pytorch的深度學(xué)習(xí)框架,可以用在很多地方,有需要的朋友可以自行參考一下2021-08-08

