• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/internals/counter/agent.php
  • Класс: BitrixTasksInternalsCounterAgent
  • Вызов: Agent::installNextStep
static function installNextStep($lastId = 0): string
{
	$lastId = (int)$lastId;
	$found = false;

	$res = Application::getConnection()->query("
		SELECT ID, DEADLINE
		FROM b_tasks 
		WHERE 
	  		STATUS < 4
	  		AND DEADLINE IS NOT NULL
	  		AND DEADLINE > NOW()
	  		AND ID > {$lastId}
		LIMIT 100
	");
	while ($task = $res->fetch())
	{
		$taskId = $task['ID'];
		$deadline = DateTime::createFromInstance($task['DEADLINE']);

		if ($taskId && $deadline)
		{
			self::add($taskId, $deadline);

			$lastId = $taskId;
			$found = true;
		}
	}

	return ($found ? "\Bitrix\Tasks\Internals\Counter\Agent::installNextStep({$lastId});" : "");
}