【问题标题】:spring-integratiopn Retry on timeout in a long process gatewayspring-integration 在长流程网关中超时重试
【发布时间】:2023-03-27 08:08:01
【问题描述】:

我正在尝试在网关超时时重试,但我无法做到这一点。 显然重试建议正在包装请求,但不要回复。 无论如何以集成方式实现这一目标?

示例要点:https://gist.github.com/daniel-frank/19dfafbf3d53f4c4b1463107daac540c

最好的问候,

【问题讨论】:

    标签: spring spring-integration


    【解决方案1】:

    好吧,让我们考虑一下,我们不知道这个漫长过程的背后是什么。只有我们知道我们发送请求并等待回复。当我们在服务调用上超时时,无法保证服务器将如何工作:也许它会存储下一个幂等调用的回复,也许它只是丢弃所有内容并忘记。或者在我们超时的时候,回复可能会在网络上丢失......

    这就是为什么我们完全不将reply 视为独立实体,而是将其视为整个请求-回复操作的一部分。

    因此,如果我们在超时期间失败,则没有其他办法,除非再次重试请求并再次尝试等待回复。这已经是服务器对同一请求做出正确反应的责任。

    如果您对此事有任何有价值的想法,请告诉我!

    【讨论】:

    • 我同意责任的问题,但有时这个“漫长的过程”超出了我的集成应用程序的边界。因此,我们决定申请超时并设置在这种情况下抛出异常。此外,如果发生这种情况,请在最终失败之前进行进一步尝试。
    猜你喜欢
    • 2013-08-26
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    相关资源
    最近更新 更多