需要建议为失败的服务调用设计更好的重试解决方案。
例如:在我的应用程序中,我确实有一个传递给服务方法的项目列表。然后用于将列表bean持久保存到其他应用程序数据库中。我们调用的服务是OSB服务,我们无权访问。如果由于任何问题(服务中断),它会将失败的bean插入我的应用程序数据库。所以我有一个LOG表,它有一个带有日期和错误消息的失败bean列表。
我必须阅读并继续在特定时间段内重新处理它。
我的解决方案: 1.从LOG表中检索bean列表。 2.使用FutureTask准备异步调用。 3.然后定期尝试三次。
答案 0 :(得分:0)
看看消息传递模式。您正在重新创建消息传递模式,但从头开始。如果您打算这样做,请尝试查看比固定时间重试更强大的内容:
https://dzone.com/articles/understanding-retry-pattern-with-exponential-back
否则,使用一些中间件来完成此任务,无论是像MuleESB还是Apache ServiceMix这样的ESB ......它们将更加强大,包括医院队列,可配置的重试,升级等等。