实际上,我有以下流程:
- 用户点击“大操作”按钮;
- 它调用 RESTful 服务;
- 其余服务调用 HugeOpServiceBean,它是一个 EJB;
- 此 EJB 将通知 JMS 队列执行 HugeOperation;
- 这个 HugeOperation 可以有两个或多个实现,因此,每个正在监听它的 MDBean 都会运行(这意味着它可能在另一个 .ear 中)
我想听听你们如何做或建议我让我能够获得这些 MDBeans 的“状态”。
基本上,每个 MDBean 都会运行一些对象类型列表中的一些方法,因此,计算完成的百分比应该很容易,我只是不知道如何以及哪个是我可以做出的最好的架构决策来使它易于访问在一些 RESTful 服务中。
提前致谢。
最佳答案
处理这个问题的 RESTful 方式是:
- 在第一次调用后向客户端返回一个 HTTP 202 状态代码“已接受”,表示请求已成功,但需要进一步处理。您还可以提供一个带有响应的 URI,客户端可以使用该 URI 来查询“作业”的状态
- 实现客户端可以调用以查询作业状态的端点。
- 操作完成后,上述 2) 中的端点将永久重定向到操作创建的主要实体的实际 URI。
关于java - 使用 Java 管理非常长时间的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14446384/