У меня есть несколько ноутбуков в этой области, которые должны ежедневно получать информацию с нашего сервера. Каждый ноутбук имеет установку server2go (в основном Apache, PHP, MySQL работает как исполняемый файл), который запускает локальную веб-страницу. Веб-страница вызывает URL на сервере, используя следующий код:Использование PHP для синхронизации больших объемов текста
$handle = fopen($downloadURL , "rb");
$contents = stream_get_contents($handle);
fclose($handle);
$ downloadURL извлекает тонну информации из базы данных MySQL на нашем сервере и возвращает результаты в виде вывода на устройство. В настоящее время я возвращаю результаты как свои собственные операторы SQL (т. Е. - если я запрашиваю базу данных «SELECT name FROM names», я могу вернуть на устройство текстовую строку «INSERT INTO names SET names =« JOHN SMITH »). Это берет информацию из онлайновой базы данных и возвращает ее на устройство в инструкции SQL, готовой для вставки в базу данных ноутбука.
Проблема, с которой я сталкиваюсь, заключается в том, что объем данных слишком велик. На веб-странице ноутбука сохраняется время при получении информации с сервера. Я установил предельные значения тайм-аута PHP очень высокими, но все же столкнулся с проблемами. Может ли кто-нибудь подумать о лучшем способе сделать это? Будет ли stream_get_contents оставаться подключенным к серверу, если я сброшу данные на устройство в более мелкие куски?
Спасибо за любой ввод.
Я тоже проголосовал за сжатие gzip ...возможно, немного SOAP webservice (чтобы вы могли иметь доступ к сеансу и ограничивать передачу, чтобы вы могли делать несколько запросов и получать ответ в кусках) – Catalin