/** * 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))); }