W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
在 queue:work 中也包含了一個 --daemon 選項,強迫隊列處理器持續(xù)處理工作,而不會每次都重新啟動框架,這個作法比起 queue:listen 可有效減少 CPU 使用量,但是卻增加了布署時,對于處理中隊列任務的復雜性。
要啟動一個常駐的隊列處理器,使用 --daemon:
php artisan queue:work connection --daemon
php artisan queue:work connection --daemon --sleep=3
php artisan queue:work connection --daemon --sleep=3 --tries=3
如你所見 queue:work 命令支持 queue:listen 大多相同的選項參數,你也可使用 php artisan help queue:work 命令來觀看全部可用的選項參數。
布署常駐隊列處理器
最簡單布署一個應用程序使用常駐隊列處理器的方式,就是將應用程序在開始布署時轉成維護模式,你可以使用 php artisan down 命令來完成這件事情,當這個應用程序在維護模式,Laravel 將不會允許任何來自隊列上的新工作,但會持續(xù)的處理已存在的工作。
要重新啟動 queue 也是非常容易,請將底下命令加到部署命令:
php artisan queue:restart
上述命令會在執(zhí)行完目前的工作后,重新啟動隊列。
注意: 這個命令依賴緩存系統(tǒng)來排定重新啟動任務。默認 APCu 無法在命令提示字符中工作。如果你正在使用 APCu 請將 apc.enable_cli=1 加到你的 APCu 設置當中。
常駐隊列處理器不會在處理每一個工作之前都重新啟動框架。因此,你應該注意并小心地在工作處理完成之前釋放占用的資源。例如,如果你正在使用 GD 函式庫操作圖片,當你完成工作的時候,你應該使用 imagedestroy 方法來釋放占用的內存。
同樣地,數據庫連接可能在長時間執(zhí)行的隊列處理器中斷線,你可以使用 DB::reconnect 方法來確保你每次都有一個全新的連接。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯系方式:
更多建議: