Laravel 基于redis队列的解析
为什么使用队列 使用队列的目的一般是: 异步执行 出错重试 解释一下: 异步执行 : 部分代码执行很耗时, 为了提高响应速度及避免占用过多连接资源, 可以将这部分代码放到队列中异步执行. Eg. 网站新用户注册后, 需要发送欢迎的邮件, 涉及到网络IO无法控制耗时的这一类就很适合放到队列中来执行. 出错重试: 为了保证一些任务的正常执行, 可以将任务放到队列中执行, 若执行出错则可以延迟一段时间后重试, 直到任务处理成功或出错超过N次后取消执行. Eg. 用户需要绑定手机号, 此时发送短信的接口是依赖第三方, 一个是不确定耗时, 一个是不确定调用的成功, 为了保证调用成功, 必然需要在出错后重试 Laravel 中的队列 以下分析默认使用的队列及其配置如下 默认队列引擎: redis 通过在 redis-cli 中使用 monitor 命令查看具体执行的命令语句 默认队列名: default 分发任务 此处以分发 异步通知( class XxxNotification implement ShouldQueue )为例. 在Laravel中发起异步通知时, Laravel 会往redis中的任务队列添加一条新任务 redis 执行语句 redis> RPUSH queues:default { "displayName": "App\\Listeners\