在规则标签中使用最终和非最终操作
环境
产品 | |
产品版本 | 1.0.0及以上 |
操作系统 | macOS、Windows和Linux |
描述
某些升级规则会阻塞其他规则,并且当我使用时,某些规则从未有效执行规则提琴手无处不在的标签。原因是什么?
解决方案
的规则选项卡提供通过修改HTTP请求和响应来模拟客户端和服务器行为的方法。您创建的每个规则都有一个匹配模式和行动这必须在匹配的情况下应用。
导致这个问题的最可能的原因是有些行为是最后,而其他人则是最后.
下面的示例演示了在一个或多个规则中组合最终操作和非最终操作时会发生什么。
非最终操作
当只执行非最终操作时,将执行并应用所有匹配规则的操作。
仅限最后操作
当一个或多个规则包含最终操作时,在包含最终操作的最高级规则发生后,操作的执行立即停止。此后不再执行其他降级规则。
混合最终和非最终行动
当一个或多个规则包含最终操作时,在包含最终操作的最高级规则发生后,操作的执行立即停止。此后不再执行其他降级规则。
方法中每个规则都有其优先级规则名单和可以降级和晋升,这将改变执行顺序。最终规则不会阻塞优先级更高的非最终规则。
为了更好地说明这个场景,请参考以下案例:
您有一个带有最终操作的规则(例如优雅地关闭最后的动作)。
类中包含最终操作的规则具有更高的优先级规则列表。当发出匹配请求时,只有第一条规则将被执行,其他降级规则不会被触发。
您有一个具有非最终操作的规则(例如马克会话和更新请求报头最后的行动)。
类中包含非最终操作的规则具有更高的优先级规则列表。当发出匹配请求时,将执行非最终操作,然后还将触发以下降级规则。如果在包含最终操作的规则之后添加其他规则,则不会执行这些规则。