• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/ml/predictionqueue.php
  • Класс: Bitrix\Crm\Ml\PredictionQueue
  • Вызов: PredictionQueue::execute
public function execute()
{
	$this->setState(self::STATE_EXECUTING);
	$this->save();
	$scoringModel = Scoring::getScoringModel($this->getEntityTypeId(), $this->getEntityId());
	if(!$scoringModel || !$scoringModel->isReady())
	{
		$this->delete();
		return false;
	}

	$additionalParameters = $this->getAdditionalParameters();
	if(!is_array($additionalParameters))
	{
		$additionalParameters = [];
	}

	$updateResult = Scoring::updatePrediction($this->getEntityTypeId(), $this->getEntityId(), $additionalParameters);
	if(!$updateResult->isSuccess())
	{
		$created = $this->getCreated();
		$yesterday = time() - 86400; // 60 * 60 * 24
		if ($created->getTimestamp() > $yesterday)
		{
			$error = join("; ", $updateResult->getErrorMessages());
			$this->setError($error);
			$this->delay();
			return false;
		}
	}

	$this->delete();
	return true;
}