我将 RxJava 用于服务器微服务项目,其中使用 Jetty 作为 HTTP Servlet 服务器。
我正在使用 Observable 处理来自客户端或主服务器的请求,用于不同的流程。当一个请求点击下面的 api 时,我会在 Observable 完成工作后返回一个响应。
@GET
@Path("{uuid}")
@Produces(MediaType.APPLICATION_JSON)
public Response doThingsForClient(@PathParam("uuid") String uuid) {
Worker worker = new Worker(uuid);
worker.run();
return Response.ok("Awesome").build();
}
class Worker {
String uuid = null;
public Worker(String uuid) {
this.uuid = uuid;
}
public void run() {
Observable.concat(Observable1,Observable2,Observable3);
}
}
我想知道是否需要处理这些 Observables 或 Flowables。据此:当他们调用完成或错误时,RxJava2 是否自动处理 observable? 和 RxJava3 源代码,我认为 Flowable 至少不会自动处理?
如果我需要手动处理资源,最好创建一个,然后在每个被调用的Observer( )处CompositeDisposable
添加一次性,完成后调用。CompositeDisposable
Observable1...Observable3
onSubscribe()
compositeDisposable.dispose()
concat
我是否还应该监视 JettyAbstractLifeCycle
来处理这些 Observables(听起来像 Android)?我不确定其他人如何在服务器端使用 RxJava,对这些问题的任何建议以及服务器项目中的一般 Rx 方法持开放态度。
谢谢!