RxJava2条件延迟

时间:2018-06-09 18:13:02

标签: java rx-java2

传入数据有两个来源

@RestController
Class Sample {

@RequestMapping(value = "/controller/sample",  method = RequestMethod.POST)
@ResponseBody
public Object getSample(@RequestBody String input) {
    System.out.println("Hello World !!")
    Thread.sleep(4000);
    System.out.println("GoodBye World !!")
}
}

目标是以这样的方式返回修改后的Observable<Message> inputMessages; // Messages from Producer Observable<Integer> pushMore; // Signals from Consumer that he can proceed N messages without delay ,使得消息之间的时间间隔不小于预设值(例如5秒)。因此,如果消息过快,我们需要通过在它们之间添加固定延迟来减慢它们的速度。但是当消费者向我们发出信号表明他已经准备好接收N个消息而没有延迟和缓存?保留我们需要立即发送的消息,不会有任何延迟。

我当前的解决方案过于复杂,包含基于Observable<Message>公开新Observable<Message>的中间对象。要实现目标对象,请订阅两个源,并使用缓存和调度程序在需要时添加延迟。

这项任务有更好的解决方案吗?也许有一些运算符可以解决类似的任务?

0 个答案:

没有答案