> PHP 프레임워크 > Laravel > 라라벨 호라이즌이란 무엇입니까? 무슨 소용이 있나요?

라라벨 호라이즌이란 무엇입니까? 무슨 소용이 있나요?

藏色散人
풀어 주다: 2021-09-20 16:47:43
앞으로
2359명이 탐색했습니다.

다음은 Laravel튜토리얼 칼럼에서 소개한 Laravel Horizon입니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!

Laravel Horizon 소개

오늘 저는 Laravel Redis 대기열을 위한 아름다운 대시보드와 코드 기반 구성 시스템을 제공하는 Laravel Horizon을 발표하게 된 것을 자랑스럽게 생각합니다.

새로운 코드 기반 구성 시스템 외에도 Horizon에는 아름다운 대시보드 UI도 있습니다. 완전한 오픈 소스이며 전체 Laravel 커뮤니티에 무료입니다. 내일 베타 버전을 출시할 예정입니다, 마음에 드셨으면 좋겠습니다. .

역자 주: 2019년 10월 현재 Horizon은 버전 3.4.1

Dashboard

라라벨 호라이즌이란 무엇입니까? 무슨 소용이 있나요?
Horizon Dashboard는 간단한 composer require laravel을 통해 액세스할 수 있는 아름다운 단일 페이지 Vue 애플리케이션입니다. /horizon은 기존 애플리케이션에 직접 설치됩니다. 대기 중인 워크로드, 최근 작업, 실패한 작업, 작업 재시도, 처리량 및 런타임 지표, 프로세스 수에 대한 실시간 통찰력을 제공합니다. Horizon::auth로 등록된 간단한 콜백을 통해 대시보드 인증을 제어하면 대시보드에 대한 액세스를 완전히 제어할 수 있습니다. 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

Configuration🎜🎜Horizon은 Laravel 대기열을 구성하는 훌륭하고 새로운 방법입니다. Laravel의 스케줄러와 마찬가지로 모든 대기열 작업자는 코드를 통해 구성할 수 있습니다. 🎜🎜코드에 이 구성이 있다는 것은 모든 것이 소스 제어 하에 있다는 것을 의미하므로 팀이 쉽게 협업할 수 있습니다. config/horizon.php 파일에서 생성할 프로세스 수, 처리할 대기열, 대기열 시간 초과 및 대기열에 전달해야 하는 기타 매개변수를 구성합니다. :work Artisan 명령 모든 설정. 🎜🎜그런 다음 모든 대기열 작업자를 시작하려면 php artisan horizon이라는 간단한 명령만 입력하면 됩니다. 다른 명령줄 옵션은 필요하지 않습니다. 이 명령은 Horizon 구성을 읽고 필요한 모든 작업자 프로세스를 구성합니다. 🎜🎜Horizon을 설치하고 프로덕션 환경에 배포한 후 구성 파일을 수정하고 다시 배포하여 전체 대기열 작업자 구성을 수정할 수 있습니다. 🎜🎜Failed Tasks🎜🎜Horizon은 실패한 작업을 검사하고 재시도하기 위한 명확하고 상세한 인터페이스를 제공합니다(예, 우리 모두가 갖고 있습니다). 해당 작업에 대한 예외 스택 추적, 레이블, 최근 재시도 기록을 볼 수 있습니다. 실패한 작업 세부 정보가 페이지에 직접 표시되면 좋을 것입니다. 재시도는 실패한 원래 작업에 연결되어 있으므로 더 이상 콘솔에 queue:retry를 맹목적으로 입력하고 재시도가 성공적으로 완료되었는지 또는 다시 실패했는지 확인하려고 할 필요가 없습니다. 🎜🎜 태그 모니터링 🎜 🎜Horizon을 사용하면 이메일, 방송, 알림대기 중인 리스너를 포함한 작업에 태그를 할당할 수 있습니다. 실제로 Horizon은 대기열에 연결된 Eloquent 모델을 기반으로 대부분의 작업에 지능적으로 태그를 지정합니다. 🎜🎜이 태그를 통해 대기열 작업을 쉽게 검색하여 특정 고객 작업이나 프로그램의 다른 대기열 작업을 볼 수 있습니다. 이 기능을 사용하면 가치가 높은 고객에게 빠르게 집중하거나 방금 지원 티켓을 제출한 고객의 실패한 작업을 찾을 수 있습니다. 🎜🎜Balance🎜🎜 대기열 내의 Horizon Queue 작업자 프로세스는 대기열의 워크로드에 따라 자동으로 밸런싱될 수 있습니다. 예를 들어 기본 대기열이 비어 있지만 알림 대기열이 대기 중인 작업으로 채워져 있는 경우 Horizon은 알림에서 로 작업을 자동으로 할당할 수 있습니다. >기본 대기열을 사용하면 이러한 작업을 빠르게 처리할 수 있습니다. 🎜🎜대기열이 따라잡으면 Horizon은 작업이 모든 대기열에 공정하게 재분배되도록 합니다. 🎜🎜지표 차트🎜🎜Horizon은 처리량 및 평균 런타임 차트를 제공하여 개별 작업 또는 전체 차량 추세에 대한 처리량 및 런타임을 볼 수 있습니다. 이러한 메트릭 스냅샷은 horizon:snapshot 명령을 사용하여 캡처됩니다. 이 명령은 Laravel에 내장된 작업 스케줄러를 사용하여 매분 실행되도록 설정할 수 있습니다. 이를 통해 배포 후 성능 저하를 빠르게 발견할 수 있습니다. 🎜

알림

대기열 중 하나가 특정 로드에 도달하면 Horizon은 Slack과 SMS 알림을 모두 보냅니다. 알림이 전송되는 시기를 결정하기 위해 대기 시간 임계값을 쉽게 구성할 수 있습니다. 이는 대기열에 더 많은 프로세스가 필요한 시기를 항상 알 수 있음을 의미합니다. 알림을 받으면 Horizon의 코드 기반 구성을 통해 신속하게 구성을 변경하여 더 많은 프로세스를 추가할 수 있습니다.

결론 및 감사

Horizon의 디자인과 개발에 기여한 Mohamed Said, David Hemphill 및 Steve Schoger에게 특별한 감사의 말씀을 전하고 싶습니다. Steve는 사용자 인터페이스를 디자인했고 David Hemphill은 인터페이스를 Vue 애플리케이션으로 구현했으며 Mohamed는 프런트 엔드를 내가 구현한 Horizon 백엔드에 연결했습니다.

위 내용은 라라벨 호라이즌이란 무엇입니까? 무슨 소용이 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:segmentfault.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿