1.在laravel項(xiàng)目目錄運(yùn)行
php artisan queue:work
2.啟動(dòng)隊(duì)列監(jiān)聽(tīng)服務(wù)
queue:work 命令有個(gè)缺陷认境,就是每次有新任務(wù)推送到隊(duì)列后需要手動(dòng)登錄到服務(wù)器并運(yùn)行該命令硕淑,任務(wù)才會(huì)被執(zhí)行课竣,這顯然是不合理的嘉赎,對(duì)此我們可以使用一些自動(dòng)化解決方案。
2.1一種方式是將 artisan queue:listen 命令加入到服務(wù)器啟動(dòng)腳本中該命令會(huì)在新任務(wù)推送到隊(duì)列時(shí)自動(dòng)調(diào)用 artisan queue:work于樟。這種方案的問(wèn)題是 queue:listen 命令會(huì)一直掛在那里公条,消耗CPU資源,而且一旦命令掛掉迂曲,新的任務(wù)還是無(wú)法執(zhí)行靶橱,更好的解決方案是使用 Supervisor 來(lái)運(yùn)行 queue:listen。
1.啟動(dòng)隊(duì)列監(jiān)聽(tīng)服務(wù)
通過(guò)下面這條指令啟動(dòng)隊(duì)列監(jiān)聽(tīng)服務(wù)路捧,它會(huì)自動(dòng)處理隊(duì)列任務(wù):
php artisan queue:listen
在linux中关霸,如果想讓它在后臺(tái)執(zhí)行,可以這樣:
nohup php artisan queue:listen &
在crontab -e中加入命令輪詢處理
* * * * * php /home/wwwroot/fcgadmin/artisan queue:work
2.2 php artisan queue:listen 命令加入到服務(wù)器啟動(dòng)腳本
3.最優(yōu)解Supervisor流程
yum install supervisor
安裝好后在/etc/會(huì)生成一個(gè)supervisord.conf文件及一個(gè)supervisord.d文件目錄
supervisord.conf是一些默認(rèn)配置杰扫,可自行修改
vim /etc/supervisord.conf
[include]默認(rèn)配置是制定.ini谒拴,因個(gè)人習(xí)慣命名為.conf文件,因此修改配置如下:
[include]
files = supervisord.d/*.conf
supervisord.d目錄用來(lái)存放用戶自定義的進(jìn)程配置
cd /etc/supervisord.d
touch fcg.conf
編輯其內(nèi)容
[program:fcg-queue-listen]
command=php /home/wwwroot/fcgadmin/artisan queue:listen
user=root
process_name=%(program_name)s_%(process_num)d
directory=/home/wwwroot/fcgadmin
stdout_logfile=/var/log/supervisor/supervisord.log
redirect_stderr=true
numprocs=1
4.查看進(jìn)程listen
ps -ef |grep listen
kill pid 殺死進(jìn)程
5.supervisorctl 是 supervisord的命令行客戶端工具
0.supervisord -c /etc/supervisord.conf 啟動(dòng)supervisord服務(wù)
1.supervisorctl status:查看所有進(jìn)程的狀態(tài)
2.supervisorctl stop es:停止es
3.supervisorctl start es:?jiǎn)?dòng)es
4.supervisorctl restart es: 重啟es
5.supervisorctl update :配置文件修改后可以使用該命令加載新的配置
6.supervisorctl reload: 重新啟動(dòng)配置中的所有程序