обрабатывать затяжные запросы к серверу. Что я имею ввиду, клиент сделал запрос к серверу (например на express), а операция выполняется крайне долго, после чего nginx просто закрывает соединение и клиент получает 500 ошибку, а процесс на сервере дальше выполняется. На данный момент сделал следующим образом, клиент делает запрос и я ему сразу отдаю ответ о том что задача поставлена на выполнение и организую подписку через sse и когда процесс на сервере завершается, отправляю event клиенту. Вопрос, это нормальная практика или как то по другому можно это реализовать ?
Подход вполне нормальный. Чаще подобное делают через сокеты
В целом да. Но если большой RPS планируется, то лучше просто очередь и эндпоинт для проверки статуса.
Да, вполне нормально, и в варианте с извещением через вебсокеты используется часто
WebSockets (server push); Server-Sent events (server push).
при реализации очередей, клиента оповещать тоже через sse ?
Да просто пусть фронт ходит и проверяет состояние. Это менее затратно.
а что значит ходит и проверяет ? Я же просто поднимаю соединение в момент создания задачи и жду ответа от сервера, или речь о каком то другом подходе
Сразу отдавай ответ "201 создал" Потом фронт ходит каждые 5 секунд и смотрит статус.
а зачем тогда мне при таком подходе sse ?
Ну я же написал, что это при высокой нагрузке. sse нормально подойдет, если нагрузка небольшая
все, понял). Большое спасибо за ответ
Обсуждают сегодня