laravel 一个小时未付款取消订单-Redis键空间通知过期事件的应用实例

本文展示了如何在laravel中利用Redis键空间通知功能处理订单支付超时问题。当用户下单后一小时未付款,系统通过监听Redis缓存的过期事件自动取消订单,避免依赖crontab定时任务。操作包括修改配置文件以使用Redis缓存,控制器中设置订单缓存,并创建自定义artisan命令来处理过期事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 PHP对Redis键空间通知过期事件的应用实例  一文中,已经介绍了PHP对Redis键空间通知功能的应用。本文主要介绍laravel中对Redis键空间通知过期事件的应用。

场景:用户下单后一个小时如果没付款就取消掉订单。

要实现这个,有了前文的基础,我们肯定不会只想到crontab定时去做,还会想到用Redis去实现。那么具体该怎么操作?请往下看:

1、先配置一下 .env 文件 ,缓存设置为Redis。

CACHE_DRIVER=redis

2、在控制器中新增订单的方法中加入缓存。

Cache::store('redis')->put('ORDER_CONFIRM:'.$order->id,$order->id,1); // 1分钟后过期。这里为了测试方便,暂设置为1分钟。

3、自定义artisan命令。

php artisan make:command OrderExpireListen

app\Console\Commands\OrderExpireListen.php文件

<?php

namespace App\Console\Commands;

use App\Model\Order;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Redis;

class OrderExpireListen extends Command
{
    /**
     * The name and signature of the conso
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值