• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/internals/cleaner.php
  • Класс: BitrixDiskInternalsCleaner
  • Вызов: Cleaner::deleteByTtl
static function deleteByTtl($type = self::DELETE_TYPE_PORTION, $limit = 10)
{
	$portion = $limit;
	if($type === self::DELETE_TYPE_TIME)
	{
		$portion = 100;
	}

	/** @var ObjectTtl[] $ttls */
	$ttls = ObjectTtl::getModelList(array(
		'with' => array('object'),
		'limit' => $portion,
		'order' => array('DEATH_TIME' => 'ASC')
	));

	$workLoad = false;
	$startTime = time();
	foreach ($ttls as $ttl)
	{
		$workLoad = true;
		if($type === self::DELETE_TYPE_TIME && (time() - $startTime > $limit))
		{
			break;
		}

		if ($ttl->isReadyToDeath())
		{
			$ttl->deleteObject(SystemUser::SYSTEM_USER_ID);
			$ttl->delete(SystemUser::SYSTEM_USER_ID);
		}
	}

	if(!$workLoad)
	{
		return '';
	}

	return self::class  . "::deleteByTtl({$type}, {$limit});";
}