Средства фоновой закачки
Для фоновой закачки файлов с удаленного сервера можно воспользоваться типами и функциями, использующими технологию BITS (Background Intelligent Transfer Service).
Технология BITS позволяет произвести передачу файлов из интернета на локальный компьютер в фоновом режиме. При этом нагрузка на сетевой канал регулируется, чтобы не доставлять неудобства для пользования интернет-браузером и другими сетевыми программами. После включения компьютера незавершенные задания закачки возобновляют выполнение. При временной недоступности сети или сервера закачка приостанавливается до исчезновения соответствующих препятствий, а затем самостоятельно возобновляется. Закачка файлов происходит во временную папку, перемещение файлов в желаемые места на локальном компьютере происходит при явном подтверждающем запросе.
Не следует использовать BITS для скачивания файлов в режиме "файл нужен сейчас" – это плохо совместимо с его фоновой природой. Например, при недоступности сети BITS долгое время (по умолчанию 10 минут) не повторяет запрос; это хорошо для фонового режима и нехорошо для интерактивного.
На зараженных вирусами или нелицензионных системах BITS достаточно часто не работает. Для диагностики можно использовать утилиту bitsadmin (например, с использованием команд /list , /monitor , /info, /cancel ). Если требуется скачивать файлы на большом количестве клиентских машин, состояние системы на которых вы не контролируете, возможно, лучше воспользоваться функцией ПОЛУЧИТЬ_ФАЙЛ.
Сценарий использования BITS средствами модуля GNET выглядит следующим образом:
- Создание нового задания закачки при помощи функции ФОНОВАЯ_ЗАКАЧКА_ДОБАВИТЬ с уникальным именем (например, "AppBuild003").
-
Функция ФОНОВАЯ_ЗАКАЧКА_ПОЛУЧИТЬ_СТАТУС позволяет в произвольное время опрашивать статус закачки, можно информировать пользователя о ходе закачки.
Функция ФОНОВАЯ_ЗАКАЧКА_УСТ_СОСТОЯНИЕ позволяет приостановить (возобновить) или отменить закачку.
Функция ФОНОВАЯ_ЗАКАЧКА_ПОЛУЧИТЬ_ОШИБКУ позволяет получить подробное описание ошибки в случае ее возникновения.
Функция ФОНОВАЯ_ЗАКАЧКА_ПОЛУЧИТЬ_ФАЙЛЫ позволяет получить список файлов, ранее переданный в функцию ФОНОВАЯ_ЗАКАЧКА_ДОБАВИТЬ. - Когда все файлы полностью получены, то при помощи функции ФОНОВАЯ_ЗАКАЧКА_УСТ_СОСТОЯНИЕ необходимо принять файлы. В результате файлы копируются из временной папки в целевые пути. Задание при этом удаляется.