У меня есть следующая задача, и я хочу решить ее с помощью Project Reactor (или RxJava)
Есть источники событий.Каждое событие состоит из serviceId и некоторой полезной нагрузки.Как только событие получено, нам нужно выполнить действие для указанного serviceId с полезной нагрузкой.Но мы должны убедиться, что промежуток времени между двумя запросами к одному и тому же идентификатору службы должен быть больше или равен одной секунде.Но запросы к разностным сервисам могут выполняться параллельно.
Также следует отметить, что подсчет сервисов происходит динамически.
Это выглядит как на следующем рисунке
В настоящее время у меня есть следующий код:
Flux.create((sink-> eventProvider.listen(new EventListner(){
public void event(req) {
sink.next(req);
}
})))
/* need some logic here */
.flatMap(req -> requestExecutor.execute(req))
.doOnNext(res -> responseProcessor.process(res))
.subscribe();
У вас есть идеи?