php 订单倒计时自动取消,倒计时n个小时候修改订单状态,这种逻辑是如何实现的?...

是在服务器设置一个定时执行的程序?

还是每次访问这个页面的时候发现超过时间后再修改?

回复内容:

是在服务器设置一个定时执行的程序?

还是每次访问这个页面的时候发现超过时间后再修改?

我觉得没必要去实时更新,类似这种的问题我认为更好的办法是在创建订单的时候记录一个过期时间,那么在读取这个订单的时候只要判断这个时间戳就可以达到验证是否到期以及当前状态是否可以继续操作的目的了,定时任务之类的并不是什么好的策略,先不说你用php来跟系统层级交互效率如何,但就这中间程序异常的风险就不是很可控,另外订单量大的情况下对于服务器的负载也是很高的

按照你的逻辑还是用定时脚本,不然的话每次访问的时候去改不是实时的不说,效率还低。

可以用linux系统的计划任务,这样可以不用循环

如果你浏览器端没有用到websocket的话,有访问时再处理是否过期即可;

如果用到了websocket,那还是老老实实的cron跑起来吧~

看具体业务场景要求了

你说的是类似如果没有15分钟没有付款取消订单的功能吧?我没做过,所以只能说一下想法。生成订单时PHP调用系统功能操作创建一个15分钟后执行的任务就行了,任务语句动态生成,例如 php -f checkOrderStatus.php -id 323003

checkOrderStatus.php里面同样用系统功能把这个定时任务删掉(如果有一次性定时任务就不用费事了,我其实不懂Linux,用的时候才搜资料)就行了。

至于 @accyl 提到负载问题倒是不用太担心,因为这个功能不走web service,所以执行该文件必然比创建一个订单开销要小很多很多,订单都能处理这个就更没问题了。

相关标签:php

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值