0

我将 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添加一次性,完成后调用。CompositeDisposableObservable1...Observable3onSubscribe()compositeDisposable.dispose()concat

我是否还应该监视 JettyAbstractLifeCycle来处理这些 Observables(听起来像 Android)?我不确定其他人如何在服务器端使用 RxJava,对这些问题的任何建议以及服务器项目中的一般 Rx 方法持开放态度。

谢谢!

4

0 回答 0