執(zhí)行一個(gè)隊(duì)列監(jiān)聽

2018-02-24 15:52 更新

Laravel 內(nèi)含一個(gè) Artisan 命令,它將推送到隊(duì)列的工作拉來(lái)下執(zhí)行,你可以使用 queue:listen 命令,來(lái)執(zhí)行這件常駐任務(wù):

開始隊(duì)列監(jiān)聽

php artisan queue:listen

你也可以指定特定隊(duì)列連接讓監(jiān)聽器使用:

php artisan queue:listen connection

注意當(dāng)這個(gè)任務(wù)開始時(shí),這將會(huì)一直持續(xù)執(zhí)行到他被手動(dòng)停止,你也可以使用一個(gè)處理監(jiān)控如 Supervisor 來(lái)確保這個(gè)隊(duì)列監(jiān)聽不會(huì)停止執(zhí)行。

你也可以在 listen 命令中使用逗號(hào)分隔的隊(duì)列連接,來(lái)設(shè)置不同隊(duì)列連接的優(yōu)先層級(jí):

php artisan queue:listen --queue=high,low

在這個(gè)范列中,總是會(huì)優(yōu)先處理 high-connection 中的工作,然后才處理 low-connection。

指定工作超時(shí)參數(shù)

你也可以設(shè)置給每個(gè)工作允許執(zhí)行的秒數(shù):

php artisan queue:listen --timeout=60

指定隊(duì)列休息時(shí)間

此外,你也可以指定讓監(jiān)聽器在拉取新工作時(shí)要等待幾秒:

php artisan queue:listen --sleep=5

注意隊(duì)列只會(huì)在工作時(shí)休息,假如有許多可執(zhí)行的工作,隊(duì)列會(huì)持續(xù)的處理工作而不會(huì)休息

處理隊(duì)列上的第一個(gè)工作

當(dāng)你只想處理隊(duì)列上的一個(gè)工作你可以使用 queue:work Artisan 命令:

php artisan queue:work

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)