在laravel中,佇列可以用於允許在表的前端進行刪除操作,而在表的後端進行插入操作;佇列是一種操作受限的線性表,進行插入操作的稱為隊尾,刪除操作的端稱為隊頭,佇列可以將耗時任務的處理往後推延,能夠提升web請求的回應速度。
本文操作環境:Windows10系統、Laravel9版、Dell G3電腦。
佇列是一種操作受限制的線性表,特殊之處在於它只允許在表的前端進行刪除操作,而在表的後端進行插入操作。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。
透過佇列,你可以將耗時任務 (如發送電子郵件) 的處理往後推延。延遲這些耗時的任務可以大幅提升 web 請求回應速度。
實作佇列有多種方式,Laravel也支援多種佇列實作驅動,例如資料庫、Redis、Beanstalkd、IronMQ及Amazon SQS等,此外也支援同步方式實作佇列(預設),甚至將佇列驅動設定為null表示不使用佇列。 Laravel為這些佇列驅動提供了統一的接口,從而方便我們任意切換驅動而不需要改變業務邏輯編碼,提供程式碼多用性。
其實說穿了,就是把任務的鍵名和鍵值儲存起來而已,儲存的媒介用什麼都可以,而所謂的隊列驅動,就是把儲存在這些媒介中的任務代碼拿出來按照隊列的演算法進行執行的一種調配方式的一段程式碼而已。
優點
解耦:訊息佇列可以對系統進行解耦,提高回應速度,系統功能向內聚合,對外開放;
非同步:訊息佇列可以對系統非同步功能進行剝離,減少功能耦合,提供開發效率;
削峰:訊息佇列可以削峰限流,確保下游消費者穩定運作;
設定
從設定檔開始,首先我們需要在設定檔中設定預設佇列驅動程式為Redis,佇列設定檔是config/queue.php。
connections配置項目:包含了Laravel支援的所有佇列驅動程式。
failed設定項目:用於設定失敗佇列任務存放的資料庫及資料表。這裡我們需要按照自己的資料庫配置對其做相應修改。
說明:此設定檔第一個設定項default用於指定預設的佇列驅動,這裡可以變更為我們選用的其他佇列驅動程式(實際上是修改.env中的QUEUE_DRIVER)
如下圖:
【相關推薦:laravel影片教學】
以上是laravel隊列能做什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!