• Модуль: seo
  • Путь к файлу: ~/bitrix/modules/seo/lib/Sitemap/Job.php
  • Класс: BitrixSeoSitemapJob
  • Вызов: Job::doStep
public function doStep(): Result
{
	$result = new Result();

	// skip if job running now
	$currentData = self::getDataBySitemap($this->sitemapId);
	if (
		$currentData['RUNNING'] === 'Y'
		|| !$this->lock()
	)
	{
		return $result;
	}

	$generator =
		(new Generator($this->sitemapId))
			->setStep($this->step)
			->setState($this->state)
	;
	if ($generator->run())
	{
		$this->state = $generator->getState();
		$this->statusMessage = $generator->getStatusMessage();
		$this->step = $generator->getStep();

		if ($this->step <= Step::STEPS[Step::STEP_INIT])
		{
			$this->status = self::STATUS_REGISTER;
		}
		elseif ($this->step >= Step::STEPS[Step::STEP_INDEX])
		{
			$this->status = self::STATUS_FINISH;
			$this->finish();
		}
		else
		{
			$this->status = self::STATUS_PROCESS;
		}

		$this->save();
	}
	$this->unlock();

	return $result;
}