Как устранить ошибку download.file в тайм-ауте операции? - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь загрузить файлы с внутреннего веб-сайта, используя файл download.file.

В большинстве случаев он работает нормально, и я знаю, что на серверной части он построен на SQL.

Однако, если выполнение запроса SQL занимает слишком много времени (например, если я увеличу количество лет), он выдаст сообщение об ошибке ниже.

( Если я открою путь загрузки непосредственно в веб-браузере, он покажет пустой экран, и через 5 минут или около того он начнет загружать файл)

Error in download.file(., destfile = path,  :
  cannot open URL ''
In addition: Warning message:
In download.file(., destfile = path,  :
  InternetOpenUrl failed: 'The operation timed out'

I Я хочу узнать, есть ли способ увеличить лимит времени ожидания, поэтому download.file может подождать до конца запроса.

(я не могу получить доступ к базе данных или изменить запрос напрямую)


Попытки:

  • options(timeout = 100000000) не работает
  • options(windowsTimeouts = 100000000) не работает
  • cacheOK = FALSE не работает
  • RCurl::curlSetOpt(timeout = 100000000) не работает

Обновления:

1 Ответ

0 голосов
/ 28 апреля 2020

По вдохновению Inte rnet Ошибка обозревателя "истекло время ожидания соединения", когда сервер не отвечает , я решил свою проблему. Если кому-то будет интересно, я отвечу на мой вопрос здесь.

Ниже приведено достижение, если ссылка не удалась.

  1. Запустите редактор реестра.
  2. Найдите следующее подраздел: HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Inte rnet Настройки
  3. В этом подразделе добавьте запись DWORD ReceiveTimeout со значением () * 1000. Например, если вы хотите, чтобы время ожидания составляло 8 минут, установите значение записи ReceiveTimeout равным 480000 (<480> * 1000).
  4. Перезагрузите компьютер.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...