java订单超时取消设计_PHP如何实现处理过期或者超时订单的,并还原库存

7daa21f720a74a59ae11a777668b9752.gif

文章来自:php自学中心网站
链接:http://www.startphp.cn/front/php/122378.html
作者:磊丰

商务合作:请加微信(QQ):2230304070

ff0785cbee3a83edb087252148a628d7.png

视频教程

81573a833565e012fbfc3944eb76b521.png

码农网每天更新3个教程:http://www.mano100.cn    158RMB升级永久会员,即可查看网站全部视频教程。有问题请咨询微信:2230304070    b85b10cbd38045747a98ed4267bffeca.pngb85b10cbd38045747a98ed4267bffeca.pngb85b10cbd38045747a98ed4267bffeca.png

2e13a6f937bb6f754f6152aeff45a524.gif

ff0785cbee3a83edb087252148a628d7.png

文章正文

81573a833565e012fbfc3944eb76b521.png

订单是我们在日常开发中经常会遇到的一个功能,最近在做一个订单过期与超时的开发。订单过期与超时就不用我解释了吧,其实两者都是同一个问题来着,就是订单未支付的处理,我们要做的是对这些未支付的订单到了一定时间就自动取消,好了,你第一反应那肯定就是做一个定时任务了!是的,就是定时任务,但是哪个才会是最佳方案呢,下面来看看:

一、前端到时间请求取消

你肯定不会想着在前端来做定时请求取消该订单的,因为如果客户禁用了该应用或者没联网,那到了一定时间时,还一直都是未处理状态的。所以前端一般都是手动去触发取消订单的。

二、服务端定时查询有没有需要取消的订单,然后批量处理。

这种方法我们用得最多的,不过存在准确度的问题,还有需要确认定时任务的周期,但是我们可以结合redis来实现,我们可以在存redis时候顺便存在mysql这样的数据库做长久存储然后用服务端定时查询,这里我用到了redis的订阅功能。

首先先修改一下配置

vim /etc/redis/redis.conf
notify-keyspace-events “Ex” #x 代表了过期事件。

然后再重启redis

service redis restart

这里创建4个文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值