• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/internals/cleaner.php
  • Класс: BitrixDiskInternalsCleaner
  • Вызов: Cleaner::releaseObjectLocks
static function releaseObjectLocks()
{
	if (!Configuration::isEnabledObjectLock())
	{
		return;
	}

	$minutesToAutoReleaseObjectLock = Configuration::getMinutesToAutoReleaseObjectLock();
	if (!$minutesToAutoReleaseObjectLock || $minutesToAutoReleaseObjectLock < 0)
	{
		return;
	}

	foreach(ObjectLock::getModelList([
		'filter' => [
			'=IS_READY_AUTO_UNLOCK' => true,
		],
		'with' => ['OBJECT'],
		'limit' => 100,
	]) as $lock)
	{
		if (!$lock->shouldProcessAutoUnlock())
		{
			continue;
		}

		$baseObject = $lock->getObject();
		if ($baseObject instanceof File)
		{
			$baseObject->unlock(SystemUser::SYSTEM_USER_ID);
		}
		else
		{
			$lock->delete(SystemUser::SYSTEM_USER_ID);
		}
	}
}