Как оптимизировать асинхронные запросы GET в R? - PullRequest
0 голосов
/ 13 апреля 2020

Мне нужно сделать несколько (миллионов) запросов GET к серверу API, который я размещаю локально, но у меня нет предыдущего опыта HTTP для их оптимизации.

Изначально я использовал httr пакета, но поскольку ответы довольно сложны, выполнение запросов GET заняло довольно много времени.

Коллега предложил сделать асинхронные запросы, поэтому я выбрал пакет crul, который строит мои запросы в следующем путь:

req <- crul::Async$new(urls = urls)

res <- req$get()
res <- lapply(res, function(z) z$parse("UTF-8"))
res <- lapply(res, function(z) jsonlite::fromJSON(z))

, где urls - это символьный вектор, содержащий все URL-адреса, к которым мне нужно отправлять запросы.

Время выполнения кода составляет около трети от того, что было ранее, но так как я планирую сделать много запросов, любая дальнейшая оптимизация будет очень приветствоваться. Я искал способы сделать это, все еще используя crul, но не увенчался успехом. Я также читал, что curl - это пакет более низкого уровня, поэтому его использование, вероятно, ускорит процесс, но, поскольку у меня нет опыта работы с HTTP / curl, я предположил, что использование более удобного для пользователя пакета сделает мой жизнь проще Но хорошо, я все еще буду использовать это, если это то, что я должен сделать:)

Надеюсь услышать от вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...