延时队列介绍:
什么是延时队列?顾名思义:首先它要具有队列的特性,再给它附加一个延迟消费队列消息的功能,也就是说可以指定队列中的消息在哪个时间点被消费。
使用场景
延时队列在项目中的应用还是比较多的,尤其像电商类平台订单成功后,在30分钟内没有支付,自动取消订单
外卖平台发送订餐通知,下单成功后60s给用户推送短信。
如果订单一直处于某一个未完结状态时,及时处理关单,并退还库存
淘宝新建商户一个月内还没上传商品信息,将冻结商铺等
……
上边的这些场景都可以应用延时队列解决。
php使用方法
首先安装queue
composer require topthink/think-queue
如果安装失败需要注意安装版本的问题:
composer create-project topthink/think tp5 5.0.*
获取版本后安装指定版本
composer require topthink/think-queue 1.1.4
代码实现功能
1,首先搭建消息队列的存储环境
推荐redis储存环境
可自行在宝塔环境搭建redis服务
2,配置驱动环境
打开项目\config\queue.php 进行配置
<?php
return [
'connector' => 'Redis', // Redis 驱动
'expire' => 60, // 任务的过期时间,默认为60秒; 若要禁用,则设置为 null
'default' =>