使用sleep函数解决定时删除未支付订单探讨
电子商务网站购买商品生成订单之后一般都会有一个支付时效的问题
用户下单之后,一定时间内未支付订单,则取消订单,并释放订单中占用的商品剩余数量
搜集了一下网上的资料,大体有以下几种方法
1)Mysql 5.1以后可以创建定时器
2) 专门写一个删除订单的php页面,在服务器端创建定时任务:php removeExpiredOrders.php
3)用户在显示订单的时候,更新订单状态
由于本人并不是太懂mysql定时器和如何创建定时任务,方法1)和方法2)暂时pass
方法3)由于无法释放订单占用的商品剩余数量pass
然后我就在想,是否可以在用户确认生成订单的同时curl一个checkpay.php页面
在checkpay.php中
sleep(2*3600);//设定支付时效为2个小时
if(order['status']==0){
/*******删除该失效订单并释放占用的剩余商品数量******/
}
1.curl可以设定超时的时间,调用curl的页面不用等待sleep页面的执行结果
2.checkpay.php无页面输出代码,仅仅是操作数据库的代码,在网上搜得这种情况sleep函数占用的系统资源并不多
现在想探讨一下这种方法实现定时处理失效订单的方法是否可行,有没有不妥的地方也希望大神能够指正