예제 #1
0
 /**
  * Job执行逻辑
  */
 public function handle_request()
 {
     printf('[%s] lastLogId: %s' . PHP_EOL, date('Y-m-d H:i:s'), $this->lastLogId);
     $type = $this->getPrefixByCityId($this->cityId);
     // 获取任务
     $tasks = Util_SearchUtil::getAjkPropsListFromSolr($type, $this->cityId, $this->lastLogId, $this->limit);
     if ($tasks === false) {
         printf('[%s] remark: %s' . PHP_EOL, date('Y-m-d H:i:s'), '获取数据失败');
         exit;
     }
     if (empty($tasks)) {
         // 任务完成
         printf('[%s] remark: %s' . PHP_EOL, date('Y-m-d H:i:s'), '任务执行完成');
         $this->setStop();
         $this->setShStopFlag();
         $this->setFlag(array_merge($this->getFlag(), array('lastLogId' . $this->cityId => 0)));
         exit;
     }
     // 循环处理任务
     foreach ($tasks as $task) {
         $solrOnProId = $task['id'];
         $this->dealTask($solrOnProId);
         $this->lastLogId += 1;
     }
     //记录游标
     $this->setFlag(array_merge($this->getFlag(), array('lastLogId' . $this->cityId => $this->lastLogId)));
 }