• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/internals/counter/counterqueueagent.php
  • Класс: BitrixTasksInternalsCounterCounterQueueAgent
  • Вызов: CounterQueueAgent::execute
static function execute()
{
	if (self::$processing)
	{
		return self::getAgentName();
	}

	self::$processing = true;

	$queue = CounterQueue::getInstance();
	$rows = $queue->get(CounterProcessor::STEP_LIMIT);

	if (empty($rows))
	{
		self::$processing = false;
		return '';
	}

	foreach ($rows as $row)
	{
		$userId = (int) $row['USER_ID'];
		(new CounterProcessor($userId))->recount($row['TYPE'], $row['TASKS']);
	}

	$queue->done();

	self::$processing = false;

	return self::getAgentName();
}