2016-12-26 116 views
0

我打算保持简短,我们有一个产品使用BPM和内部队列以及许多EJB(pojo实现)。我们决定将REST添加到产品中,并且我们将JAX-RS和Swagger归入文档。 现在,我们创建了一个指向异步场景的端点,当REST请求到达时,我们异步启动BPMN流程,然后等待流程完成的约定的超时持续时间,以便我们可以并行地向内部队列发送响应,它在BPMN流程完成处理时接收消息,然后可以构建REST响应。REST和阻塞队列

我正在寻找一些企业模式或一些实用框架来帮助我实现这一点,而不是自己发明它。我知道骆驼有很多这样的模式,但我不确定我在寻找JDK 1.6兼容框架中可用的模拟此同步行为的东西。

我会喜欢RxJava或某些观察者通知模式,可能没有内部JMS队列在线程之间传递消息。一个并发和线程安全的soilutuion是我正在寻找的。

回答

0

我会有像RxJava或某些观察员通知程序模式的东西可能没有内部JMS队列在线程之间传递消息。一个并发和线程安全的解决方案是我正在寻找的。

如果您要使用JAX-RS,那么您应该熟悉Asynchronous Server API。对于缓慢但同步的操作,您只需要dispatch a task to your executor,并在有结果时恢复挂起的请求。

另一种方法是将暂停的请求存储在共享数据结构中,工作人员负责观察已完成的流程,查找暂停的请求并分发响应。 Michael Barker的票务演示中的ResponseServlet显示了这一基本思想(Barker的代码使用servlet而不是JAX-RS,而Disruptor而不是RxJava,因此您需要翻译)。

上异步响应处理的其他资源