Задать вопрос
Этот вопрос закрыт для ответов, так как повторяет вопрос Что выбрать для бэкенда с нуля?
Zonor
@Zonor
Начинающий веб программист

Много исходящих запросов на сторонний API за короткое время и преобразование в JSON, справится ли node JS, или взять Go?

Есть сторонний API. нужно делать примерно от 100 до 1000 запросов к этому API и запихнуть в базу обновленные данные, и желательно сделать это все быстрее, чтобы время на обновление информации не тратилось больше 3 секунд. С API приходит JSON, в node его нужно получить через await response.json(), а потом запихнуть в базу.

Весь день голову ломаю. На Node можно пачкой отослать запросы, а потом обрабатывать их используя Promise.all(), единственный вариант который нашел. Так как использовать потоки для I/O нецелесообразно. Но потом это все нужно преобразовать в JSON, создать объект на основе этого JSON, и запихнуть в базу, и тут скорее всего только потоки мне помогут сделать это быстрее. Возможно есть какой то более легкий путь !? В какую сторону можно копнуть?

А для GO такая задача будет проще чем для Node !? Может кто то сталкивался уже.
  • Вопрос задан
  • 334 просмотра
Подписаться 2 Средний 2 комментария
Ответы на вопрос 1
@falconandy
1. Можете начать с реализации отправки запросов и получения результатов, но результаты запросов просто игнорируйте без всяких преобразований. Сравните Go и Node между собой и с лимитом в 3 секунды. Если вышли за 3 секунды, думайте, как получать результаты быстрее или поднимайте лимит.
2. Если вам нужна скорость, то нужно ли вам полноценное преобразование тело-запроса -> json -> объект -> БД? Можете ли вы обойтись более короткой цепочкой, например тело-запроса -> нужные поля -> БД?
3. Для Go можете попробовать https://github.com/mailru/easyjson или аналоги, если структура объектов известна заранее. В этом случае преобразование json -> объект должно быть быстрее, чем со стандартной библиотекой.
4. Для Go эта задача вполне в его нише - реализация должна быть простой. В общем случае что-то типа N горутин на выполнение запросов, M горутин для конвертации результатов, K горутин для записи в БД. Обычно K=1 и в этой горутине можно писать записи в БД пачками (batches), что быстрее, чем по одной записи.

Весь день голову ломаю.

За день уже могли бы реализовать на том, что знаете (nodejs) и если не устроит по результатам, попробовать Go.
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы