實(shí)現(xiàn)方案:采用job隊(duì)列
- 修改.env文件 QUEUE_CONNECTION 為redis 或者database
- 創(chuàng)建Job類 make:job Create a new job class
- 在job類中沙兰,實(shí)現(xiàn)邏輯
job主要包括三個(gè)函數(shù)
- 構(gòu)造函數(shù) 可選,用來(lái)傳參
- handle() 必選,實(shí)現(xiàn)隊(duì)列任務(wù)邏輯
- failed() 可選,當(dāng)任務(wù)失敗時(shí)執(zhí)行
-
分發(fā)隊(duì)列任務(wù)
dispatch(new CommentInfoJob($params['user_id'], $params['comment_id']));
-
開(kāi)啟隊(duì)列進(jìn)程,執(zhí)行隊(duì)列任務(wù)
php artisan queue:work
這種方式不能關(guān)閉teminal搀别,比較不方便。所以一般使用Supervisor。
-
安裝supervisor
yum install python-setuptools
添加配置 /etc/supervisor.d/ 中創(chuàng)建 laravel-worker.ini文件
supervisor命令
1. 啟動(dòng): sudo supervisord -c /etc/supervisord.conf
2. 殺掉: supervisorctl shutdown