我根据以下文章rxjava2 producer-consumer example在RxJava上开发了一个消费者/制作人。
但我的用例有点复杂。
我将使用多个订阅者,每个订阅者都有某种过滤器(订阅者及其过滤器的数量会在运行时变化),并且会有一些itens不会被任何订阅者处理
我需要获取所有剩余的项目(不符合任何订阅者的资格)进行一些后期处理。
我尝试过使用方法" onAfterNext()"在生产者上,但是这个方法在订阅者处理项目之前执行
有办法吗?
答案 0 :(得分:0)
使用PublishSubject
类解决这个问题,以追加我的听众。
PublishSubject<SQSMessage<String>> ps = PublishSubject.create()
ps.publish();
ps.subscribe(m -> System.err.println(m));
flowable.parallel()
.runOn(Schedulers.io())
.map(item -> {
// This map sends the object to my listeners on PublishSubject
ps.onNext(item);
return item;
})
.sequential()
// This map does the post processing after
// the object was sent to the listeners
.map(s -> {//do post process stuff})
.subscribe();