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