【发布时间】:2016-06-18 08:34:23
【问题描述】:
在阅读了响应式编程 RxJava 并查看了一些在线教程后,我对它感到非常兴奋。我想在我的项目中应用它。
我的项目(比如 X)以某种方式与外部系统交互,即通过 JMS 将一些请求发送到系统 Y,直到收到响应(在可配置的持续时间内)进程停止。现在,传统上我们有一个时间监控系统,它以固定的间隔保持轮询,以检查响应是否到达,如果没有,它会通知 X 和 X 采取一些行动。但同时 Y 可以发回响应,而 X 也必须处理它。
这里涉及到竞争条件和很多并发问题,因为它涉及到 CRUD 事务,大量的簿记和所涉及对象的更新。
输入 RxJava,通过清楚地应用 Observables(在 X 和 Y 之间)和 Observers (X),这非常适合我的用例,但我希望我也可以利用一些计时器或监视行为,这样 X 就不会永远等待 Y 的响应但是收到通知响应延迟了,您不再需要等待它,另外还要记录一些关于延迟响应等的记录。
RxJava 是否提供了某种机制来计时请求和响应持续时间? 你认为 RxJava 适合我的 UC 还是你有更好的建议。
我主要关心的是处理并发,因为这个系统在并行处理响应和更新对象时会遇到很多问题。虽然 RxJava 听起来很有希望,因为它会通过允许事件序列(到达时响应)来降低并发性,但这是错误的假设吗?
注意:这不是我们在这里讨论的移动应用程序。
【问题讨论】:
标签: java asynchronous concurrency rx-java reactive-programming