Nodejs ответ на запрос API после обработки данных - PullRequest
0 голосов
/ 07 января 2020

В моем текущем проекте мой nodeJs / express будет получать HTTP-запрос по маршруту.

После получения узел будет использовать Nightmare JS для выполнения веб-скраппинга и последующего выполнения python скрипт, который далее обрабатывает данные.

Наконец, он затем обновит эти данные в MongoDB.

Все занимает около 5 минут.

То, чего я пытаюсь добиться, - это позволить моему клиенту каким-то образом получить подтверждение того, что запрос был передан. Но также получите обновление, когда вышеуказанный процесс завершен и база данных обновлена.

Я изучил использование длинного опроса или socket.io. Тем не менее, я не знаю, какой мне следует использовать или как. Или я должен использовать rabbitMQ вместо этого? Помещение ответа, что оно завершено, в очередь, в то время как мой клиент постоянно запрашивает эту очередь.

1 Ответ

1 голос
/ 07 января 2020
  1. Длинные опросы или socket.io похожи, у socket.io есть резервный вариант Длинного опроса, если WS не поддерживается

  2. rabbitMQ совсем другой, вы не можете использовать rabbitMQ Protocal в браузере, поэтому вам нужно клиентское приложение, а не веб

  3. socket.io отлично и go хорошо express, но есть и другие варианты, SSE (сервер) отправлять события), firebase. Вы должны почувствовать их, прежде чем выбрать один, они не так сложны, если вы будете следовать их официальному руководству

4. Некоторые из моих открытых источников могут помочь

https://github.com/postor/sse-notify-suite

https://github.com/postor/node-realtime-db

преимущества каждого решения

  • ajax + кэш сервера: простой
  • длительный пул: низкая задержка
  • SSE: низкая задержка, событие на основе
  • socket.io: низкая задержка, основанная на событиях, высокая подача сигнала, двойное направление, длительный откат назад
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...