//当队列存在任务->出队
$llen = $redis->lLen($redisKey);
//删除Key
if (empty($llen)) {
$redis->del($redisKey);
}
$start = time ();
while ( $llen ) {
if (time () - $start > 1800) { // 超时30分钟
break;
}
$order_code = $redis->lpop ( $redisKey );
//移除队列中重复的订单
$redis->Lrem ( $redisKey,$order_code ,1);
if (! $order_code) {
Common_Common::myEcho("队列中没有需要处理的订单");
break;
}
$processNum++;
//检查库存
$obj = new Service_OrderDispatchProcess();
$rs = $obj->updateOrderStatus($order_code);
if (isset($rs['orderStatus']) && $rs['orderStatus'] == '4') {
$success++;
}
Common_Common::myEcho(print_r($rs, true));
}
$pageSize = 500;
$page = $loop = 1;
$processNum = $success = 0;
//排序
$orderBy = " GROUP BY o.order_id ORDER BY o.order_id ASC";
$db = Common_Common::getAdapter();
$obj = new Process_RequestCounter ();
$redis = $obj->getRedis();
if ($re
Redis订单队列实例
关注
打赏