Пример #1
0
 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);
 }