• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sync/managers/pushwatchingmanager.php
  • Класс: BitrixCalendarSyncManagersPushWatchingManager
  • Вызов: PushWatchingManager::doRenewWatchChannels
private function doRenewWatchChannels(): string
{
	$pushChannels = PushTable::getList([
		'filter' => [
			'ENTITY_TYPE' => [self::TYPE_LINK, self::TYPE_CONNECTION],
			'<=EXPIRES' => (new DateTime())->add('+1 day'),
		],
		'order' => [
			'EXPIRES' => 'ASC',
		],
		'limit' => self::RENEW_LIMIT,
	])->fetchCollection();

	foreach ($pushChannels as $pushChannelEO)
	{
		$pushChannel = (new BuilderPushFromDM($pushChannelEO))->build();

		if ($pushChannel->getEntityType() === self::TYPE_LINK)
		{
			$this->renewSectionPush($pushChannel);
		}
		elseif ($pushChannel->getEntityType() === self::TYPE_CONNECTION)
		{
			$this->renewConnectionPush($pushChannel);
		}
	}

	if ($pushChannels->count() < self::RENEW_LIMIT)
	{
		return self::RESULT_STATUS['done'];
	}

	return self::RESULT_STATUS['next'];
}