備注:作為一位后端開發(fā)工程師,是否遇到過(guò)這樣的場(chǎng)景秧骑,我們需要一個(gè)進(jìn)程常駐。你的第一個(gè)想法是什么扣囊?* * * * * crontab 乎折?no,你有更好的選擇侵歇,畢竟crontab更加適用于定時(shí)任務(wù)骂澄。supervisord可以讓你的進(jìn)程在執(zhí)行完成或者意外終止時(shí)0間隙重新啟動(dòng)。如果你使用過(guò)隊(duì)列惕虑,應(yīng)該懂得生產(chǎn)者和消費(fèi)者坟冲,如何讓消費(fèi)者持續(xù)消費(fèi)且不中斷士修?此時(shí)我們只需要將消費(fèi)命令直接寫入到supervisord的配置文件即可。
一樱衷、如何安裝并啟動(dòng)棋嘲?
1、如何安裝
yum install supervisor
2矩桂、如何啟動(dòng)
supervisord -c /etc/supervisord.conf
二沸移、如何修改配置文件、加入新的配置侄榴?
cd /etc/supervisord.d #進(jìn)入配置目錄
vim mq.conf
#寫入以下配置
[program:aliyun_mq_worker] #配置名稱
process_name=%(program_name)s_%(process_num)02d
command=php /data/www/greens/artisan mq:receive #此處為需要守候的命令
autostart=true #自動(dòng)啟動(dòng)
autorestart=true #自動(dòng)重啟
user=root
numprocs=1 #進(jìn)程數(shù)(隊(duì)列消費(fèi)者通常為多個(gè)進(jìn)程一起執(zhí)行)
redirect_stderr=true
stdout_logfile=/data/www/greens/storage/logs/worker.log #日志路徑
:wq #保存并退出
3雹锣、特別強(qiáng)調(diào)
supervisorctl reread #supervisor 有新配置需要加載時(shí)執(zhí)行
supervisorctl update #supervisorctl update 配置更新時(shí)執(zhí)行
supervisorctl restart all #執(zhí)行中的進(jìn)程代碼出現(xiàn)更新時(shí)尤其要小心,執(zhí)行該代碼保證代碼正常生效