#node.js #express
#node.js #экспресс
Вопрос:
В примере, когда веб-сайт электронной коммерции успешно принимает запрос на заказ, отправляется ответ с указанием номера заказа. После этого клиенту отправляется электронное письмо с информацией о заказе. Электронное письмо не обязательно должно быть мгновенным и может отправляться через некоторое время
Я использую Node JS (Express)
В таком случае, что лучше? 1) Отправить ответ. Выполнить код для отправки электронной почты 2) Поставить в очередь в какую-либо очередь (например, в AWS) и обработать ее позже
Хотя я знаю, что второй метод хорош, заставит ли первый пользователя продолжать ждать ответа? Что, если код отправки электронной почты был в каком-то обратном вызове? Или это два разных способа достижения одного и того же?
Комментарии:
1. Обратные вызовы не обязательно подразумевают асинхронное выполнение, так что да, если отправка электронного письма синхронна и потенциально требует много времени, попробуйте найти способ отделить его от HTTP-запроса-reaponse.
Ответ №1:
Это практически одно и то же. Если вы используете обратный вызов, который выполняется асинхронно, пользователю не придется ждать.
Постановка в очередь имеет смысл только в том случае, если есть некоторые проверки, которые необходимо выполнить перед подтверждением заказа, скажем, проверка в платежной системе, чтобы определить, верны ли платежные реквизиты.
Поскольку отправка электронной почты — это задача, с которой сервер может справиться без вызова каких-либо внешних API (проверка оплаты и т.д.), Если это все, что требуется, лучше обрабатывать обратным вызовом, а не очередью.