Laravel Horizon是什麼?有啥用?

2021-09-20 19:01:16
下面由教學欄目給大家介紹介紹 Laravel Horizon,希望對需要的朋友有所幫助!

介紹 Laravel Horizon

今天我得意的宣佈 Laravel Horizon, 它為 Laravel Redis 佇列提供了精美的儀表盤和程式碼驅動的設定系統。

除了全新的程式碼驅動設定系統, Horizon 還有美麗的儀表盤 UI, 它完全開源,對整個 Laravel 社群都是免費的,我們明天釋出測試版本,我希望你會喜歡它。

譯者注: 截止 2019 年 10 月,Horizon 已經發布了 3.4.1 版本

儀表盤

731e0947e59f78cdac2cce6515c8c67.png
Horizon 儀表板是一個漂亮的單頁 Vue 應用程式,可通過簡單的composer require laravel / horizon直接安裝到現有應用程式中。 它提供對佇列工作負載,最近的作業,失敗的作業,作業重試,吞吐量和執行時指標以及程序計數的實時洞察。 通過Horizon :: auth註冊的簡單回撥控制儀表板的身份驗證,從而使您可以完全控制對儀表板的存取。

設定

Horizon 是設定 Laravel 佇列的絕佳新方法。 與 Laravel 的排程程式類似,所有佇列工作者都可以通過程式碼設定:

在您的程式碼中擁有此設定意味著這一切都在原始碼控制之下,從而使您的團隊可以輕鬆地進行共同作業。在config/horizon.php檔案中,我們設定要建立的程序數量、需要處理的佇列、佇列超時時間以及需要傳遞給 queue:work Artisan 命令的其他任何設定 。

然後,要啟動所有的佇列工作者,只需要一個簡單的命令:php artisan horizon。 不需要其他命令列選項。 該命令將讀取 Horizon 設定並設定所有必需的工作程序。

將 Horizon 安裝並部署到生產環境後,您可以通過修改組態檔並重新部署來修改整個佇列工作者的設定。

失敗的任務

Horizon 提供了清晰詳細的介面,用於檢查和重試失敗的任務(是的,我們都有)。 您可以檢視該任務的異常堆疊跟蹤,標籤和最近重試記錄。 將失敗的任務詳細資訊直接在頁面上顯示真是太好了。 由於重試是連結到失敗的原始任務,因此您不再需要盲目地嘗試在控制檯輸入queue:retry並確定其重試是成功完成還是再次失敗:

標籤監控

Horizon 允許您為任務分配標籤,包括 EmailBroadcastsNotificationsQueued Listeners。 實際上,Horizon 會根據附加到佇列的 Eloquent Model 智慧地給大多數任務打上標籤。

您可以通過這些標籤輕鬆地搜尋到佇列任務,從而檢視特定的客戶任務或者程式中的其他佇列任務。 此功能使您可以快速關注高價值客戶,或為剛提交支援工單的客戶找到失敗的任務:

平衡

Horizon 可以根據佇列的工作負載自動平衡佇列中的佇列工作程序。 例如,如果default 佇列為空,但notifications佇列中充滿了佇列任務,則 Horizon 可以自動將notifications的任務分配到default佇列中,以幫助快速處理這些任務。

佇列趕上後,Horizon 將確保在所有佇列中公平地重新分配任務。

指標圖表

Horizon 提供吞吐量和平均執行時間圖表,使您可以檢視單個任務或整個佇列的吞吐量和執行時間趨勢。 這些指標快照是使用horizon:snapshot命令捕獲的,可以使用 Laravel 內建的任務排程將其設定為每分鐘執行一次。 這使您可以快速發現部署後的效能下降。

通知

當您的某個佇列達到一定負荷時,Horizon 會同時傳送 Slack 和 SMS 通知。 您可以輕鬆設定等待時間閾值以確定何時傳送通知。 這意味著您始終知道何時佇列需要更多的處理程序。 收到通知後,Horizon 的程式碼驅動設定使您可以快速進行設定更改以增加更多處理程序。

結論 & 感謝

我要特別感謝Mohamed Said,David Hemphill和Steve Schoger,他們都為 Horizon 的設計和開發做出了貢獻。 Steve 設計了使用者介面,David Hemphill 將其作為 Vue 應用程式實現了介面,Mohamed 將前端連線到了我實現的 Horizon 後端。

以上就是Laravel Horizon是什麼?有啥用?的詳細內容,更多請關注TW511.COM其它相關文章!