• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/integrations/report/statistics/manager.php
  • Класс: BitrixImOpenLinesIntegrationsReportStatisticsManager
  • Вызов: Manager::calculateStatisticsInQueue
static function calculateStatisticsInQueue()
{
	$pageSize = 100000;

	$query = new Query(StatisticQueueTable::getEntity());
	$query->addSelect('ID');
	$query->addSelect('STATISTIC_KEY');
	$query->addSelect('PARAMS');
	$query->addOrder('DATE_QUEUE');
	$query->where('DATE_QUEUE', '<=', new DateTime());
	$query->setLimit($pageSize);

	$offset = 0;
	do
	{
		$query->setOffset($offset);
		$cursor = $query->exec();
		$hasResultData = $cursor->getSelectedRowsCount() > 0;
		if ($hasResultData)
		{
			while ($resultFromQueue = $cursor->fetch())
			{
				$id = $resultFromQueue['ID'];
				$statisticNameKey = $resultFromQueue['STATISTIC_KEY'];
				$params = $resultFromQueue['PARAMS'];
				self::writeToStatistics($statisticNameKey, $params);
				self::removeFromQueue($id);
			}
			$offset += $pageSize;
		}
	}
	while ($hasResultData);

	$className = get_called_class();
	return $className  . '::calculateStatisticsInQueue();';
}