• Модуль: clouds
  • Путь к файлу: ~/bitrix/modules/clouds/classes/general/failover.php
  • Класс: CCloudFailover
  • Вызов: CCloudFailover::executeDeleteQueue
static function executeDeleteQueue()
{
	$deleteTask = BitrixCloudsDeleteQueueTable::getList(array(
		'limit' => 1,
		'order' => Array('ID' => 'ASC')
	))->fetch();
	if ($deleteTask)
	{
		$testBucket = new CCloudStorageBucket($deleteTask["BUCKET_ID"]);
		if (
			($testBucket->isFailoverEnabled() && CCloudFailover::IsEnabled())
			&& ($testBucket->FAILOVER_ACTIVE === "Y")
		)
		{
			return CCloudFailover::ST_FAILOVER;
		}

		$obBucket = new CCloudStorageBucket($deleteTask["BUCKET_ID"], false);
		if ((time() - $deleteTask["TIMESTAMP_X"]->getTimestamp()) > $obBucket->FAILOVER_DELETE_DELAY)
		{
			if ($obBucket->Init())
			{
				$obBucket->setQueueFlag(false);
				if (!CCloudTempFile::IsTempFile($deleteTask["FILE_PATH"]))
				{
					$fileExists = $obBucket->FileExists($deleteTask["FILE_PATH"]);
					if ($fileExists)
						$fileSize = $obBucket->GetFileSize($deleteTask["FILE_PATH"]);
					$result = $obBucket->DeleteFile($deleteTask["FILE_PATH"]);
					if ($result && $fileExists)
						$obBucket->DecFileCounter($fileSize);
				}
				else
				{
					$result = $obBucket->DeleteFile($deleteTask["FILE_PATH"]);
				}
				//AddMessage2Log(array($deleteTask, $result));
				BitrixCloudsDeleteQueueTable::delete($deleteTask["ID"]);
			}
		}
		return CCloudFailover::ST_CONTINUE;
	}
	else
	{
		return CCloudFailover::ST_END;
	}
}