php 超时支付取消订单,php利用workerman的定时器实现延时操作(订单支付不成功后一定时间未支付自动取消订单)...

延时操作个人目前接触最多的场景是用户下单后一定时间未支付自动取消订单,传统的做法是采用定时任务定时扫描数据库超时订单或者利用客户端的请求每次请求去检测一次是否有超时订单,这些方法我始终感觉不是很好,所以一直想办法在弄一个比较理想的方法,至少比上面这两个方法好一点的处理方式

今天没事就研究了一下这个东西,主要是利用workerman的定时器。所以首先得下载workerman然后引入到自己的项目,或者composer安装也可以,具体就不再多说了。先贴出代码

use Workerman\Worker;

use \Workerman\Lib\Timer;

require_once './Workerman/Autoloader.php';

//创建一个Worker监听2345端口,使用http协议通讯

$http_worker = new Worker("

//启动4个进程对外提供服务

$http_worker->count = 4;

//检查订单是否超时

function check_order($order){

//这个方法用于检查该订单是否超时。。。。具体逻辑根据实际应用场景写,这里只记录是否进入这个方法

file_put_contents('./log.txt','订单编号:'.$order.' 处理时间:'.date('Y-m-d H:i:s')."\n",FILE_APPEND);

}

$http_worker->onMessage = function($connection, $data)

{

$msg=&

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值