• Модуль: rest
  • Путь к файлу: ~/bitrix/modules/rest/lib/engine/access/loadlimiter.php
  • Класс: BitrixRestEngineAccessLoadLimiter
  • Вызов: LoadLimiter::getResetTime
static function getResetTime($entityType, $entity, $method): ?int
{
	$result = null;

	if (static::isActive())
	{
		$resource = static::getConnectionResource();
		if ($resource)
		{
			$numBucket = static::getNumBucket();
			$key =  static::getKey($entityType, $entity, $method);
			$keyExpire =  static::CACHE_EXPIRE_TIME_PREFIX . '|' . $key;
			for ($i = static::$bucketCount - 1; $i >= 0; $i--)
			{
				$time = (float)$resource->get($key . ($numBucket - $i));
				if ($time > 0 && $resource->exists($keyExpire . ($numBucket - $i)))
				{
					$result = (int)$resource->get($keyExpire . ($numBucket - $i));
					break;
				}
			}
			if (!$result)
			{
				if (!empty(static::$timeRegistered))
				{
					$item = reset(static::$timeRegistered);
					if (!empty($item['timeStart']))
					{
						$firstTimeStart = reset($item['timeStart']);
						$result = $firstTimeStart + static::$bucketCount * static::$bucketSize;
					}
				}
			}
		}
	}

	return $result;
}