下面由Laravel教程欄目給大家介紹介紹 Laravel Horizon,希望對需要的朋友有所幫助!
介紹 Laravel Horizon
今天我得意的宣布 Laravel Horizon, 它為 Laravel Redis 隊列提供了精美的儀表盤和代碼驅動的配置系統(tǒng)。
除了全新的代碼驅動配置系統(tǒng), Horizon 還有美麗的儀表盤 UI, 它完全開源,對整個 Laravel 社區(qū)都是免費的,我們明天發(fā)布測試版本,我希望你會喜歡它。
譯者注: 截止 2019 年 10 月,Horizon 已經(jīng)發(fā)布了 3.4.1 版本
儀表盤
Horizon 儀表板是一個漂亮的單頁 Vue 應用程序,可通過簡單的composer require laravel / horizon
直接安裝到現(xiàn)有應用程序中。 它提供對隊列工作負載,最近的作業(yè),失敗的作業(yè),作業(yè)重試,吞吐量和運行時指標以及進程計數(shù)的實時洞察。 通過Horizon :: auth
注冊的簡單回調控制儀表板的身份驗證,從而使您可以完全控制對儀表板的訪問。
配置
Horizon 是配置 Laravel 隊列的絕佳新方法。 與 Laravel 的調度程序類似,所有隊列工作者都可以通過代碼配置:
在您的代碼中擁有此配置意味著這一切都在源代碼控制之下,從而使您的團隊可以輕松地進行協(xié)作。在config/horizon.php
文件中,我們配置要創(chuàng)建的進程數(shù)量、需要處理的隊列、隊列超時時間以及需要傳遞給 queue:work
Artisan 命令的其他任何設置 。
然后,要啟動所有的隊列工作者,只需要一個簡單的命令:php artisan horizon
。 不需要其他命令行選項。 該命令將讀取 Horizon 配置并配置所有必需的工作進程。
將 Horizon 安裝并部署到生產(chǎn)環(huán)境后,您可以通過修改配置文件并重新部署來修改整個隊列工作者的配置。
失敗的任務
Horizon 提供了清晰詳細的界面,用于檢查和重試失敗的任務(是的,我們都有)。 您可以查看該任務的異常堆棧跟蹤,標簽和最近重試記錄。 將失敗的任務詳細信息直接在頁面上顯示真是太好了。 由于重試是鏈接到失敗的原始任務,因此您不再需要盲目地嘗試在控制臺輸入queue:retry
并確定其重試是成功完成還是再次失?。?/p>
標簽監(jiān)控
Horizon 允許您為任務分配標簽,包括 Email
、Broadcasts
、Notifications
和Queued Listeners
。 實際上,Horizon 會根據(jù)附加到隊列的 Eloquent Model 智能地給大多數(shù)任務打上標簽。
您可以通過這些標簽輕松地搜索到隊列任務,從而查看特定的客戶任務或者程序中的其他隊列任務。 此功能使您可以快速關注高價值客戶,或為剛提交支持工單的客戶找到失敗的任務:
平衡
Horizon 可以根據(jù)隊列的工作負載自動平衡隊列中的隊列工作進程。 例如,如果default
隊列為空,但notifications
隊列中充滿了隊列任務,則 Horizon 可以自動將notifications
的任務分配到default
隊列中,以幫助快速處理這些任務。
隊列趕上后,Horizon 將確保在所有隊列中公平地重新分配任務。
指標圖表
Horizon 提供吞吐量和平均運行時間圖表,使您可以查看單個任務或整個隊列的吞吐量和運行時間趨勢。 這些指標快照是使用horizon:snapshot
命令捕獲的,可以使用 Laravel 內置的任務調度將其設置為每分鐘運行一次。 這使您可以快速發(fā)現(xiàn)部署后的性能下降。
通知
當您的某個隊列達到一定負荷時,Horizon 會同時發(fā)送 Slack 和 SMS 通知。 您可以輕松配置等待時間閾值以確定何時發(fā)送通知。 這意味著您始終知道何時隊列需要