Laravel 8 連接 Vs. 隊列

2021-07-19 10:59 更新

在開始使用 Laravel 隊列之前,理解「連接」和「隊列」之間的區(qū)別非常重要。 在 config/queue.php 配置文件中,有一個 connections 配置選項。 此選項定義到后端服務(如 Amazon SQS、Beanstalk 或 Redis)的特定連接。 然而,任何給定的隊列連接都可能有多個「隊列」,這些「隊列」可能被認為是不同的堆?;虺啥训呐抨犎蝿?。

請注意, queue 配置文件中的每個連接配置示例都包含一個 queue 屬性。 這是將任務發(fā)送到給定連接時將被分配到的默認隊列。換句話說,如果您沒有顯式地定義任務應該被發(fā)送到哪個隊列,那么該任務將被放置在連接配置的 queue 屬性中定義的隊列上:

// 這個任務將被推送到默認隊列...
Job::dispatch();

// 這個任務將被推送到 "emails" 隊列...
Job::dispatch()->onQueue('emails'); 

有些應用程序可能不需要將任務推到多個隊列中,而是傾向于使用一個簡單的隊列。然而,如果希望對任務的處理方式進行優(yōu)先級排序或分段時,將任務推送到多個隊列就顯得特別有用,因為 Laravel 隊列工作程序允許您指定哪些隊列應該按優(yōu)先級處理。例如,如果您將任務推送到一個 high 隊列,你可能會運行一個賦予它們更高處理優(yōu)先級的 worker:

php artisan queue:work --queue=high,default 
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號