laravel中Horizon简单介绍适合于redis操作队列

简单介绍

horizon为您的laravel驱动的redis队列提供了漂亮的仪表板和代码驱动配置。Horizon允许您轻松监视队列系统的关键度量,如作业吞吐量、运行时和作业失败。

 

您的所有工作机配置都存储在一个简单的配置文件中,允许您的配置保留在源代码管理中,以便整个团队可以进行协作。

注意:由于它使用异步进程信号,horizon需要PHP 7.1+

您可以使用composer将horizon安装到您的laravel项目中:

composer require laravel/horizon

安装Horizon后,使用“供应商:发布Artisan”命令发布其资源:

PHP artisan vendor:publish --provider="Laravel\Horizon\HorizonServiceProvider"

配置

发布horizon的资产后,它的主配置文件将位于config/horizon.PHP。此配置文件允许您配置工作机选项,并且每个配置选项都包含其用途的描述,因此请确保彻底浏览此文件

平衡期权

Horizon允许您从三种平衡策略中进行选择:简单(simple)自动auto)错误false)认情况下,简单策略在进程之间均匀地分割传入的作业:

'balance' => 'simple',
自动策略根据队列的当前工作负载调整每个队列的工作进程数。例如,当呈现队列为空时,如果通知队列有1000个等待作业,Horizon将向通知队列分配更多的作业,直到它为空。当balance选项设置为false时,将使用认的laravel行为,该行为按照队列在配置中列出的顺序处理队列。
horizon在/horizon处显示仪表板。认情况下,您只能在本地环境中访问此仪表板。要为仪表板定义更具体的访问策略,应该使用horizon::auth方法接受应返回true或false的回调,指示用户是否应访问Horizon仪表板:

Horizon::auth(function ($request) {
    // return true / false;
});

运行范围

一旦您在config/horizon.PHP配置文件中配置了您的工作人员,就可以使用horizon artisan命令启动horizon。这个命令将启动所有配置的工作线程:

PHP artisan horizon
可以暂停地平线进程,并指示它使用地平线:暂停和地平线:继续Artisan命令继续处理作业:

PHP artisan horizon:pause PHP artisan horizon:continue

您可以使用horizon:terminate artisan命令优雅地终止计算机上的主地平线进程。地平线当前正在处理的任何作业都将完成,然后地平线将退出

PHP artisan horizon:terminate

部署地平线

如果要将horizon部署到活动服务器,则应配置一个进程监视器来监视PHP artisan horizon命令,并在该命令意外退出时重新启动它。将新代码部署到服务器时,需要指示主地平线进程终止,以便进程监视器可以重新启动它并接收代码更改。

 

您可以使用horizon:terminate artisan命令优雅地终止计算机上的主地平线进程。地平线当前正在处理的任何作业都将完成,然后地平线将退出

PHP artisan horizon:terminate

PHP Artisan Horizon:终止

管理器配置

如果使用主管流程监视器管理地平线流程,则以下配置文件应足够:

[program:horizon]
process_name=%(program_name)s
command=PHP /home/forge/app.com/artisan horizon
autostart=true
autorestart=true
user=forge
redirect_stderr=true
stdout_logfile=/home/forge/app.com/horizon.log

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...