public function handle_request() { //分表 $date = date('Ymd'); $id = 0; //获取游标 $dateFlag = $this->getFlag($this->_cursorPath); if (!empty($dateFlag)) { $date = $dateFlag['date']; $id = $dateFlag['id']; } //获取房源日志 $ProLogList = Model_Log_HouseLogNew::getProLogListByCityId($date, $id, $this->_city, $this->_mod, $this->limit); //判断当前队列是否处理完成 if (empty($ProLogList)) { //判断是否切换表 if ($date < date('Ymd')) { $date = date('Ymd', strtotime($date) + 24 * 3600); $id = 0; //记录表游标 $this->setFlag(array('date' => $date, 'id' => $id), $this->_cursorPath); } //休息1秒钟 $this->setShCommonSleepTime(1); $this->setLog('处理完成'); exit; } //队列数据处理 foreach ($ProLogList as $list) { $this->_taskInfo = $list; $id = $list['id']; $this->setLog(sprintf('开始处理队列: %s', json_encode($list))); if ($list['siteType'] == 1) { $this->noticeComboSolrAjk($list); $this->noticeDownSolrAjk($list); // 精选房源 $this->noticeChoiceSolrAjkAPI($list); // 板块精选房源 $this->noticeBlockChoiceSolrAjkAPI($list); //房源推广变更日志(二手房) $this->proSpreadChangeLogCreateAjk($list); //房源第一次推广日志 $this->proFirstSpreadLogCreate($list); //房源操作日志 $this->proActionLogCreate($list); //活动房源通知更新 $this->updateActivityAjk($list); /** 通知小区信息变更 */ $this->noticeCommunityInfoChange($list, 1); } elseif ($list['siteType'] == 2) { $this->noticeComboSolrZf($list); $this->noticeDownSolrZf($list); // 精选房源 $this->noticeChoiceSolrZfAPI($list); // 房源更新 $this->updateSolrZf($list); //房源推广变更日志(租房) $this->proSpreadChangeLogCreateHz($list); //活动房源通知更新 $this->updateActivityZf($list); /** 通知小区信息变更 */ $this->noticeCommunityInfoChange($list, 2); } elseif ($list['siteType'] == 3) { $this->noticeComboSolrJp($list); $this->noticeDownSolrJp($list); //精选房源 $this->noticeChoiceSolrJpAPI($list); //金铺房源更新 $this->updateSolrJp($list); //房源推广变更日志(金铺) $this->proSpreadChangeLogCreateJp($list); } else { //记录处理日志 $this->setLog(sprintf('处理失败[siteType=%d]', $list['siteType'])); continue; } $this->setFlag(array('date' => $date, 'id' => $id), $this->_cursorPath); } $this->setFlag(array('date' => $date, 'id' => $id), $this->_cursorPath); //休息10毫秒 $this->setShCommonSleepTime(0.01); }