我们需要保证发送Web服务请求。步骤如下:确保向Web服务发送请求
- 尝试将请求发送到Web服务。同步或异步请求无关紧要。
- 如果服务由于某种原因(例如服务不可用)而未确认请求,我们会在一段时间内再次尝试第1步(即有某种轮询)。
问题在于执行步骤#2(即轮询)。 这个用例看起来很常见,我认为应该已经有解决方案了。所以我希望只向Web服务发送一个请求,所有其他逻辑(即其保证的交付)将由某个框架执行。
你知道这样的解决方案吗?
有“Guaranteed delivery”EIP模式和骆驼支持它。但是我没有找到骆驼支持它的任何信息,以及它是否适合我们的情况。
我们的要求 - Java,SOAP,开源解决方案。 我们计划使用Apache CXF,但它并不重要。
最后的话:分别提供 2伟大的答案:
- 春重试布莱恩·阿格纽。这是相当普遍的方法,不仅适用于Web服务。
- 来自Ashok Nanda的CXF故障切换。该解决方案就Web服务而言,完全符合我们的需求。
不幸的是我不能选择两个答案作为最终让我选择了布莱恩的一个,因为它是第一个,他提供了帮我看看另一个可能的问题:-) 谢谢你们一个真正伟大的解释!
我不会真的称之为“轮询”,而只是“重试”。 (请小心如何解决何时重试,请注意。)我不确定你在这里寻找什么 - 模式或库中现有模式的实现? –