Я привык принимать запрос пользователей, обрабатывать его и отвечать на результат.
Однако у меня есть конечная точка API, в которой есть около 10 вещей, которые должны происходить с различными базами данных, ведением журнала, электронной почтой и т. д. Все асинхронно. Только первый вызов базы данных должен быть успешным, чтобы пользователь получил ответ. Остальные могут продолжать.
Проблема в том, что весь процесс может занять 10/20 секунд, поэтому пользователь ждет 10/20 секунд, когда ему нужен ответ только после первого запроса к БД (около 100 мс).
мне в принципе нужно
- Пользователь делает запрос
- происходит асинхронный вызов БД
- Если это не удается, он выдает пользователю ошибку, но если это удается, он отвечает успехом.
- пользователь может продолжать делать то, что ему нужно, но сервер продолжает выполнять несколько других вызовов БД.
Я использую асинхронное ожидание для всех асинхронных вызовов и выражаю их как свою веб-инфраструктуру.