тут не спросить :) может кто работал с webflux и знает, каким образом можно в хендлере вебсокет соединения без блокировки дождаться выполнения условия средствами самого webflux? Нужно буквально подвесить метод (while(true) / CountDownLatch и т.д.) но не ломать реактивность
суть в том, что нужно отправить данные в Kinesis дождаться обработки и получения ответа от SQS
Так верни из хэндлера Mono/Flux, как появятся данные они по подписке полетят дальше
А, надо на примитиве синхронизации подождать? А кто решает что пора просыпаться?
проблема в том, что если при вызове метода возвращающего Flux условие не срабатывает, то Flux все равно возвращается, просто пустой и пайплайн в хендлере отрабатывает возвращая ответ кривой. Но я тут вроде нашел, что через интервал можно сделать и оно вроде почти заработало... у меня больше проблема в том что я первый раз этот вебфлакс вижу и доки у них какие то не очевидные)
нужно дождаться события из SQS и обновления значения мапы. Т.е. из sqs просто валится куча событий и клиенты ждут когда ответ для них будет тут довольно мутная логика размазанная по лямбдам и объекты прокидываются через несколько очередей, но по сути нужно вот сделать что -то вроде while(true): if (map.get(key) != null): return Message
Если флюкс пустой, то ничего не отправится, что то не то
ну я делал что -то вроде ``` webSocketSession.receive() .map(message -> service.getData(message)) .map(session::textMessage); .. getData() { return Flux.create(sink -> { ... sink.next(answer) }) } и вот кажется я просто что -то пропустил, т.к. у меня клиент тупо строку начал получать "Flux.create"
Flux.from вроде должен быть
Обсуждают сегодня