public function run() { $this->setShCommonSleepTime(1); $year = date('Y'); $bll = new Bll_Plan_BidFreezeOrderNum($year); //获取一条未处理的记录 $result = $bll->getNotFixedOrder(); //没有未处理的数据,则设置sh为闲置状态 if (empty($result)) { $this->setShCommonSleepTime(5); exit; } //如果没有处理的记录超过指定时间,取消订单 if (time() - $result['addTime'] > Bll_Plan_BidFreezeOrderNum::ORDER_VALID_TIME) { $this->addLogger("需要处理数据:" . json_encode($result)); //请求取消冻结url $requestId = $bll->getRequestId($result['siteType'], $result['userId'], date('Y', strtotime($result['addDate'])), $result['id']); $javaApi = BLL_Service_JavaApi::getInstance($result['siteType']); $url = "service-exes/rest/exes/cancelFrozen"; $propSpread = APF::get_instance()->get_config("propSpread2", "app"); $fields = array('appId' => $propSpread['paycenter_id'], 'appKey' => $propSpread['paycenter_key'], 'reqId' => $requestId, 'userId' => $result['userId'], 'note' => '取消冻结'); $apiResult = $javaApi->useapi($url, $fields, BLL_Service_JavaApi::GETTYPE); if (isset($apiResult['code']) && $apiResult['code'] == 200) { $this->addLogger("Java API请求取消冻结成功:" . json_encode(array('url' => $url, 'param' => http_build_query($fields), 'result' => $apiResult))); //更新队列状态为取消冻结成功 if ($bll->cancleOrderSuccess($result['id'], $result['addTime'], $requestId)) { $this->addLogger("更新队列状态为取消成功"); //$this->updateCursor($result['id']); } else { $this->addLogger("更新队列状态为取消成功"); } } else { $this->addLogger("Java API请求取消冻结失败:" . json_encode(array('url' => $url, 'param' => http_build_query($fields), 'result' => $apiResult))); //更新队列状态为取消冻结失败 if ($bll->cancleOrderFail($result['id'], $result['addTime'])) { $this->addLogger("更新队列cancleFailNum成功"); } else { $this->addLogger("更新队列cancleFailNum失败"); } } } else { $this->noLogQuit('最近一条数据需要处理的时间不在有效处理时间之内'); } }