Yamma Gamma
@Все Интересная задачка!!!
Есть http-сервер который долго обрабатывает запросы
Первым летит запрос x и начинает обрабатываться
Вторым прилетает запрос y точно такой же как и x
Нужно сделать: на x ответить 202,а на y продолжить обработку запроса
Подсказка,используем spring-boot (запросы бывают долгими из-за того что 100500 интеграций между модулями через очереди)
С напарником неделю ломаем голову и не можем придумать решение,
Если кого-то заинтересует задача или кто-то ранее сталкивался с таким,буду рад любым решениям проблемы))
ну как бы решение в лоб получили первый запрос X, из контроллера передал его в сервис. в сервисе положил в какую-то условную структуру данных, ключ-значние, которая по ключу позволяет получить или проапдейтить статус выполенния задачи. дальше "засыпаешь и просыпаешься раз в n миллисекунд" и проверяешь статус выполнения задачи. если пришел второй такой же запрос, то он апдейтит статус задачи для "первого запроса" на "верни 202" и создает новую задачу. если второй запрос не пришел, то тот кто выполняет задачу помечает ее как выполнено и возвращаешь 200 ok