首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

可视化队列管理工具 Laravel Horizon 来了

文章翻译&整理自 Taylor 的 博客文章 Taylor 在今天发布了一个新工具:Laravel Horizon ,它为 Laravel Redis 队列提供了一个漂亮的仪表板和代码驱动的配置系统。...它提供队列工作负载、最近作业、失败作业作业重试、吞吐量和运行时指标、进程计数的实时显示。...因为重试与原始失败的任务相关联,所以你不再需要在终端中盲目的反复尝试 queue:retry 来重启任务,以确定任务成功还是再次失败: ?...Horizon 会根据队列的工作负载自动平衡队列的工作进程。例如,当你的“默认”队列为空,但是“通知队列被任务填满时。...当你的队列过满时,Horizon 可以向你发送 SMS 和 Slack 通知。你可以配置等待时间阈值,以确定何时发送通知。这意味着你总是可以清楚的知道,你的队列何时需要更多的 worker 。

3.3K40

Laravel队列简单使用

消息队列的主要特点是异步处理,主要目的是减少请求响应时间和解耦。所以主要的使用场景就是将比较耗时而且不需要即时(同步)返回结果的操作作为消息放入消息队列。...配置队列 安装扩展包 composer require "predis/predis:~1.0" 队列的配置信息存放在config/queue.php 在.env中修改配置驱动 QUEUE_DRIVER...=redis 使用redis驱动 REDIS_CLIENT=predis 使用predis 生成队列需要的数据表 有时候队列会执行失败,这张表用于存放失败信息 php artisan queue:failed-table...} 队列监控 1.通过命令监控 php artisan queue:listen 2.有图形界面的监控 Horizon 安装Horizon composer require "laravel/horizon...:~1.0" 生成配置 php artisan vendor:publish --provider="Laravel\Horizon\HorizonServiceProvider" 接下来输入 http

76320

Laravel队列「建议收藏」

默认是sync,即同步的,直接处理,无队列.要将其修改为对应的类型,如database,redis等 laravel学院文档地址 使用redis为例: 1,在config/queue.php return...2:connections配置项包含了Laravel支持的所有队列驱动,我们使用Redis驱动,所以需要配置redis项:connection对应config/database.php中redis的default...你可以使用 Artisan CLI 生成新的队列任务: php artisan make:job SendReminderEmail --queued //--queued告诉 Laravel 该任务应该被推送到队列而不是同步运行.../etc/supervisor/conf.d 目录,在该目录中,可以创建多个配置文件指示 Supervisor 如何监视进程,例如,让我们创建一个开启并监视queue:work 进程的laravel-worker.conf...文件: [program:laravel-worker] process_name=%(program_name)s_%(process_num)02d command=php /home/forge

1.7K10

laravel-redis消息队列

原理 消息队列由消息、队列、处理程序组成。 基本的流程就是由生产者(业务代码)将数据推送到队列中(此处使用的是Redis),然后由消费者(处理程序)从队列中取出数据进行加工处理。...Model; class Student extends Model { // 定义模型对应的数据库表名 protected $table = 'students'; } Laravel...的队列系统 队列配置文件存储在 config/queue.php,在.env文件中,配置queue的连接为 Redis QUEUE_CONNECTION=redis 任务类 接下来使用命令 php artisan...return json_encode(['id'=>$uid,'msg'=>'成功']); } } 开发测试的时候,可以把->onConnection('redis')指定连接为...root@php:/var/www/html/laravel.cn# php artisan queue:work redis --queue=TestQueueStudent --tries=1 [2024

14010

laravel使用redis配置队列

有些任务并不需要及时运行,就可以将其写入队列,从而不影响主业务逻辑的进程。如:用户发帖成功后推送消息给其关注的用户。...如果一个用户是大v,有几百万的粉丝,肯定不能将发贴与推送通知的逻辑捆绑在一起,不然分分钟卡死。 ?...image 配置redis队列 每当用户成功发贴,就将这一事件写入队列,我们使用Redis作为队列驱动器 首先安装相应扩展 nrk/predis $ composer require predis/predis...Laravel 内置了一个方便的方式来指定任务重试的最大次数。当任务超出这个重试次数后,它就会被插入到 failed_jobs 数据表里面。...User $user) { $user = User::query()->first(); $this->dispatch(new Notice($user)); dd('文章发布成功

1.8K30

PHP-web框架Laravel-队列(三)

并发处理Laravel队列系统默认是串行处理作业的,这意味着每个作业都要等待前一个作业处理完毕后才能开始处理。但是,有时候我们需要同时处理多个作业,这就需要并发处理。...Laravel通过将队列连接设置为"redis","database"或"beanstalkd"来实现并发处理。这些连接可以处理多个并发作业。...作业优先级Laravel队列系统还支持作业优先级,这意味着我们可以为不同类型的作业分配不同的优先级。优先级高的作业将在优先级低的作业之前处理。优先级默认为0,值越高表示优先级越高。...重试作业Laravel队列系统默认会自动重试作业,如果一个作业失败了,它将被重新推送到队列中,直到达到最大尝试次数。最大尝试次数默认为3,可以在config/queue.php中进行配置。...Laravel默认会将失败的作业写入日志文件。我们还可以在config/queue.php中配置将失败的作业发送到其他通知渠道,例如电子邮件或Slack。

1.1K11

Laravel消息通知系统之数据库

Laravel 自带了一套极具扩展性的消息通知系统,尤其还支持多种通知频道,我们将利用此套系统来向用户发送消息提醒。...通知频道指通知的各种途径,Laravel自带的有如下几种 数据库 邮件 短信(通过 Nexmo) Slack 通过数据库实现消息通知 1.准备数据表 php artisan notifications...artisan migrate 2.生成通知laravel中每一种通知属于一个类,使用如下命令创建通知类,通知类存放在app/Notifications php artisan make:...,via方法表示通过什么途径发送通知,toDatabase是数据库通知的方法,这个方法接收 $notifiable 实例参数并返回一个普通的 PHP 数组。...这个返回的数组将被转成 JSON 格式并存储到通知数据表的 data 字段中。 4.触发通知 在某个模型的观察者中 <?

1K20

数据结构_栈和队列_作业

2022.10.10智慧树作业_栈和队列 [toc] 第一题 相同点: 在逻辑上都是线性结构,栈和队列本质就是特殊的线性表,都可以用链表或者顺序表进行存储 不同点: 栈、队列具有特定的性质,特定的运算规则...,一个栈负责出队列,一旦出队列栈为空,就把入队列栈中所有元素都出到出队列栈 第六题 用两个队列实现栈 #include "queue.cpp" //用两个队列实现栈 template <class elemType...,一个总是空的,一个总是不空的 入栈就进非空队列,出栈把非空队列的前n个出到空队列,pop非空队列最后一个元素 非空队列就变成了空队列,空队列就变成了非队列 第七题 现有一个整数队列, 需要将其前 k...例如队列[1, 2, 3, 4, 5, 6, 7, 8, 9], 若 k 为 4, 则需要将队列调整为[4, 3, 2, 1, 5,6, 7, 8, 9] template <class elemType...,后n-k个元素放到临时队列,再从临时栈中入到主栈,临时队列入到主栈 第八题 给定一个整型的顺序表, 表示在同一行的行星。

17530

高并发消息队列常用通知机制

高并发消息队列常用通知机制 最近在研究一个高性能的无锁共享内存消息队列,使用的fifo来通知。结合之前《基于管道通知的百万并发长连接server模型》文章,这里总结一下常用的通知机制。...常用的通知机制中比较典型的有以下几种: 1、signal 这种机制下,我们向被通知进程发送一个特殊的signal(比如SIGUSR1),这样正在睡眠的读进程就会被信号中断,然后醒来。...该方法的缺点是:通知不实时。因为信号的检查只有在中断返回的时候才会进行,这个时间跟操作系统的HZ、jiffies有关。...上面这几种方式的共性是都需要陷入内核,被通知进程只有在内核态才能接收通知,对于处理性能要求高的场景,应该少用通知。所以,当然就看业务场景发送通知的开销是不是很大了。...如果请求量很大,读进程一直忙于处理,不会频繁触发通知,那就很合适了。

1.1K30
领券