我不熟悉Azure API管理。我们正在从Azure api管理中调用外部web API。如果web api无法与Azure API管理进行通信,我们会在放弃之前尝试几次重试。
我们在出站节点( policy )中增加了重试策略,用于检查后端节点(policy)的响应状态。如果响应状态不是200,那么我们将尝试在10秒后再次调用web api。我们想在放弃之前再试两次。
问题是出站节点(策略)总是执行send-request节点(策略),即使我们只是写
<retry condition="@(false)" count="2" interval="10" first-fast-
retry="false">
<send-request.....>
......
......
</send-request>
</retry>如何在重试策略中写入条件,以便在执行子节点之前对其进行检查。
<outbound>
<base />
<retry condition="@(context.Response.StatusCode != 200)" count="2" interval="10" first-fast-retry="false">
<send-request mode="new" response-variable-name="responseVar" ignore-error="false">
<set-url>... </set-url>
<set-method>POST</set-method>
<set-body>...</set-body>
<set-header>...</set-header>
</retry>
</outbound>发布于 2019-09-12 10:30:20
重试始终执行其内部策略,并且仅在第一次和后续执行后检查条件。其想法是检查内部策略的一些结果,以确定是否需要再次执行它们。要预先检查条件,必须将其包装到choose策略中。
https://stackoverflow.com/questions/57853003
复制相似问题