Size: a a a

2021 January 15

YG

Yamma Gamma in pro.jvm
Валерий Фёдоров
Сталкивались с похожими задачами. Приложение крутится на одном серваке или на нескольких?
Нескольких
источник

かたかわ in pro.jvm
Yamma Gamma
чувак,это называется если сталкивался поделись пожалуйста
Это выглядит как "помогите решить тестовое задание", лул
источник

YG

Yamma Gamma in pro.jvm
かたかわ
Это выглядит как "помогите решить тестовое задание", лул
это не тестовая,а реальная задача
источник

YG

Yamma Gamma in pro.jvm
Валерий Фёдоров
Сталкивались с похожими задачами. Приложение крутится на одном серваке или на нескольких?
Мы пробовали кешировать,но там на последние запросы 202 отдает,а нужно чтобы на предыдущие
источник

МК

Максим Калашников... in pro.jvm
Yamma Gamma
Мы пробовали кешировать,но там на последние запросы 202 отдает,а нужно чтобы на предыдущие
на вчерашние чтоб тоже?
источник

V

Vlad in pro.jvm
Yamma Gamma
@Все Интересная задачка!!!
Есть http-сервер который долго обрабатывает запросы
Первым летит запрос x и начинает обрабатываться
Вторым прилетает запрос y точно такой же как и x
Нужно сделать: на x ответить 202,а на y продолжить обработку запроса
Подсказка,используем spring-boot (запросы бывают долгими из-за того что 100500 интеграций между модулями через очереди)
С напарником неделю ломаем голову и не можем придумать решение,
Если кого-то заинтересует задача или кто-то ранее сталкивался с таким,буду рад любым решениям проблемы))
а как отличить x от y? Звучит очень странно)
источник

ВФ

Валерий Фёдоров... in pro.jvm
При поступлении запроса регистрируешь его в БД или каком-нибудь распределенном хранилище (игнайт, хазелкаст и т.п.).  При завершении обработки предыдущего проверяешь, не было ли новее.
источник

G

George in pro.jvm
Реестр запросов вести, может? Хотя тогда срубать потоки, обрабатывающие старые запросы придется
источник

AK

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

YG

Yamma Gamma in pro.jvm
Vlad
а как отличить x от y? Звучит очень странно)
полностью одинаковые
источник

AG

Alexey Genus in pro.jvm
Yamma Gamma
@Все Интересная задачка!!!
Есть http-сервер который долго обрабатывает запросы
Первым летит запрос x и начинает обрабатываться
Вторым прилетает запрос y точно такой же как и x
Нужно сделать: на x ответить 202,а на y продолжить обработку запроса
Подсказка,используем spring-boot (запросы бывают долгими из-за того что 100500 интеграций между модулями через очереди)
С напарником неделю ломаем голову и не можем придумать решение,
Если кого-то заинтересует задача или кто-то ранее сталкивался с таким,буду рад любым решениям проблемы))
Перед началом обработки запроса делаете запрос в базу
insert into … on conflict или эквивалентный. Тот, кому удаётся вставить продолжает обработку. Тот, кому не удалось - возвращает 202.
источник

ГК

Григорий Киселев... in pro.jvm
Всем привет!Посоветуйте курс по джаве(или сайт для изучения джавы,или игру)
источник

DC

Denis Chikanov in pro.jvm
Григорий Киселев
Всем привет!Посоветуйте курс по джаве(или сайт для изучения джавы,или игру)
источник

YG

Yamma Gamma in pro.jvm
Alexander Komarov
ну как бы решение в лоб получили первый запрос X, из контроллера передал его в сервис. в сервисе положил в какую-то условную структуру данных, ключ-значние, которая по ключу позволяет получить или проапдейтить статус выполенния задачи. дальше "засыпаешь и просыпаешься раз в n миллисекунд" и проверяешь статус выполнения задачи. если пришел второй такой же запрос, то он апдейтит статус задачи для "первого запроса" на "верни 202" и создает новую задачу. если второй запрос не пришел, то тот кто выполняет задачу помечает ее как выполнено и возвращаешь 200 ok
прикол в том,что первый запрос запускает поток и ждёт ответ из очереди(соответственно локается пока не получит message),и пока он не получил ответ может прилететь второй такой же,который ничего не знает про первый и тоже залочится на очереди
источник

AK

Alexander Komarov in pro.jvm
Yamma Gamma
прикол в том,что первый запрос запускает поток и ждёт ответ из очереди(соответственно локается пока не получит message),и пока он не получил ответ может прилететь второй такой же,который ничего не знает про первый и тоже залочится на очереди
ну так переделай
источник

AK

Alexander Komarov in pro.jvm
я бы нарисовал картинку, но у вас же свой архитектор/лид должен быть
источник

SY

Sergey Yezhov in pro.jvm
Yamma Gamma
@Все Интересная задачка!!!
Есть http-сервер который долго обрабатывает запросы
Первым летит запрос x и начинает обрабатываться
Вторым прилетает запрос y точно такой же как и x
Нужно сделать: на x ответить 202,а на y продолжить обработку запроса
Подсказка,используем spring-boot (запросы бывают долгими из-за того что 100500 интеграций между модулями через очереди)
С напарником неделю ломаем голову и не можем придумать решение,
Если кого-то заинтересует задача или кто-то ранее сталкивался с таким,буду рад любым решениям проблемы))
Я бы сказал, что маловато контекста (какого характера обработка и зачем отдавать на первый запрос 202, а продолжать обрабатывать во 2м, мб всего этого можно и не делать) и, вероятно, саму постановку задачи можно изменить и не городить огород.

Но звучит как проблема идемпотентности.
https://m.habr.com/ru/company/yandex/blog/442762/
источник

YG

Yamma Gamma in pro.jvm
Sergey Yezhov
Я бы сказал, что маловато контекста (какого характера обработка и зачем отдавать на первый запрос 202, а продолжать обрабатывать во 2м, мб всего этого можно и не делать) и, вероятно, саму постановку задачи можно изменить и не городить огород.

Но звучит как проблема идемпотентности.
https://m.habr.com/ru/company/yandex/blog/442762/
Спасибо,дружище)Статья напутствующая,интересная
источник

SY

Sergey Yezhov in pro.jvm
Yamma Gamma
Спасибо,дружище)Статья напутствующая,интересная
👍.
источник

AK

Alexander Komarov in pro.jvm
Sergey Yezhov
Я бы сказал, что маловато контекста (какого характера обработка и зачем отдавать на первый запрос 202, а продолжать обрабатывать во 2м, мб всего этого можно и не делать) и, вероятно, саму постановку задачи можно изменить и не городить огород.

Но звучит как проблема идемпотентности.
https://m.habr.com/ru/company/yandex/blog/442762/
хехе, недавно бывший коллега как раз поржал с яндекса. у него зависло приложение яндекс.еда, он тыкнул на "заказать" еще раз и получил в ответ два заказа. позвонил в течении минуты и попросил один отменить, на что ему ответили "нет возможности".
источник