在阅读有关它并在线查看一些教程后,我对反应式编程RxJava感到非常兴奋。我想在我的项目中应用它。
我的项目(比如X)与外部系统接口的方式是,某些请求通过JMS发送到系统 Y ,直到收到响应(在可配置的持续时间内),进程停止。现在,传统上我们有一个时间监控系统,它以固定的间隔保持轮询以检查响应是否到达,如果它没有通知X和X采取一些行动。但在同一时间Y可以发回响应,X也必须照顾它。
这里涉及竞争条件以及许多并发问题,因为它涉及CRUD事务大量的簿记和涉及对象的更新。
输入RxJava这完全适合我的用例,通过应用Observables(在X和Y之间)和Observers(X)清楚但我希望我也可以利用一些计时器或监控行为,以便X不等待来自Y永远,但得到通知,响应延迟,你不再需要等待它,加上做一些关于延迟响应等的书籍。
RxJava是否提供了一些时钟请求和响应持续时间的机制? 你认为RxJava适合我的UC还是你有更好的建议。
我主要关心的是处理并发性,因为这个系统在并行处理响应和更新对象时遇到很多问题。虽然RxJava听起来很有希望,因为它会通过允许事件序列(到达时的响应)来减少并发性,这是错误的假设吗?
注意:这不是我们在这里讨论的移动应用程序。
答案 0 :(得分:0)
当然,RxJava非常适合你想要做的事情。如果在一段时间内没有发出任何项目,Observable.timeout
将发出错误。 (这会将下游传播为错误,上游传播为取消订阅,因此您可以在源处执行正确的处理。)