• Модуль: clouds
  • Путь к файлу: ~/bitrix/modules/clouds/classes/general/failover.php
  • Класс: CCloudFailover
  • Вызов: CCloudFailover::queueCopy
static function queueCopy($obBucket, $FILE_PATH)
{
	if (
		$obBucket->FAILOVER_BUCKET_ID > 0
		&& $obBucket->FAILOVER_COPY === "Y"
		&& $obBucket->getQueueFlag()
	)
	{
		if (
			($obBucket->isFailoverEnabled() && CCloudFailover::IsEnabled())
			&& ($obBucket->FAILOVER_ACTIVE === "Y")
		)
		{
			$TARGET_BUCKET_ID = $obBucket->ID;
			$SOURCE_BUCKET_ID = $obBucket->FAILOVER_BUCKET_ID;
		}
		else
		{
			$TARGET_BUCKET_ID = $obBucket->FAILOVER_BUCKET_ID;
			$SOURCE_BUCKET_ID = $obBucket->ID;
		}

		BitrixCloudsCopyQueueTable::add(array(
			"TIMESTAMP_X" => new BitrixMainTypeDateTime(),
			"OP" => BitrixCloudsCopyQueueTable::OP_COPY,
			"SOURCE_BUCKET_ID" => $SOURCE_BUCKET_ID,
			"SOURCE_FILE_PATH" => $FILE_PATH,
			"TARGET_BUCKET_ID" => $TARGET_BUCKET_ID,
			"TARGET_FILE_PATH" => $FILE_PATH,
		));

		$deleteTasks = BitrixCloudsDeleteQueueTable::getList(array(
			'select' => array('ID'),
			'filter'=> array(
				'=BUCKET_ID' => $TARGET_BUCKET_ID,
				'=FILE_PATH' => $FILE_PATH,
			),
		));
		while ($task = $deleteTasks->fetch())
		{
			BitrixCloudsDeleteQueueTable::delete($task['ID']);
		}
	}
}