IndexRebuild::onPendingStart

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. IndexRebuild
  4. onPendingStart
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/agent/duplicate/background/indexrebuild.php
  • Класс: Bitrix\Crm\Agent\Duplicate\Background\IndexRebuild
  • Вызов: IndexRebuild::onPendingStart
protected function onPendingStart(array $progressData): bool
{
	/** @var Merge $mergeAgentClassName */
	$mergeAgentClassName = $this->getMergeAgentClassName();
	$mergeAgent = $mergeAgentClassName::getInstance($this->getUserId());

	if ($mergeAgent->isActive())
	{
		return $this->setError($progressData, static::ERR_ON_START_MERGE_AGENT_ACTIVE);
	}

	$mergeAgent->deleteProgressData();

	$progressData['TYPE_INDEX'] = 0;
	$progressData['PROCESSED_ITEMS'] = 0;
	$progressData['FOUND_ITEMS'] = 0;

	$totalItemQty = 0;

	$typeIds = $this->getTypeIds($progressData['TYPES']);
	foreach($typeIds as $typeId)
	{
		$builder = DuplicateManager::createIndexBuilder(
			$typeId,
			$this->getEntityTypeId(),
			$this->getUserId(),
			!Container::getInstance()->getUserPermissions($this->getUserId())->isAdmin(),
			array('SCOPE' => $progressData['SCOPE'])
		);
		$totalItemQty += $builder->getTotalCount();
	}
	$progressData['TOTAL_ITEMS'] = $totalItemQty;

	$timestamp = time();

	$progressData['STATUS'] = static::STATUS_RUNNING;
	$progressData['TIMESTAMP_START'] = $timestamp;
	$progressData['TIMESTAMP_HALF'] = 0;
	$progressData['TIMESTAMP_FINISH'] = 0;
	$progressData['TIMESTAMP'] = $timestamp;
	$this->setProgressData($progressData);

	return true;
}

Добавить комментарий