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

	self::$processing = true;

	$queue = Queue::getInstance();
	$rows = $queue->get(CounterController::STEP_LIMIT);

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

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

	$queue->done();

	self::$processing = false;

	return self::getAgentName();
}