4

我正在使用瞬态故障处理应用程序块 (TFHAB) 来定义与 Azure 数据库交互时的重试策略。我想知道是否有一种方法可以调用节流响应来规划和处理可能的生产场景?

我可以将一个 SQL 命令放在一个循环中并运行它,直到我调用一个响应但是大概这不被认为是“最佳实践”?

任何人都可以提出一些实用的方法来测试我的瞬态错误处理逻辑吗?

4

3 回答 3

2

查看结合测试 Azure 中的瞬态错误和Windows Azure SQL 数据库返回的错误代码列表,看看您是否可以模拟您正在测试的行为。除了单元测试之外,我认为您将无法“模拟”错误,因为这些错误是通过 TDS 协议来自 SQL 的,很难拦截。您的需求将是您可以注入模拟器的应用程序块的一个很好的候选者。

于 2013-03-10T18:14:57.327 回答
2

我设法开发了一些代码,使您能够可靠地在 Azure SQL 数据库中生成暂时性错误。您可以在以下位置找到代码:https ://github.com/robdmoore/SQLAzureTransientDemo

于 2013-06-05T13:39:33.257 回答
0

我对您的建议是依赖注入:) 详细说明,您的更高级别的客户端代码不应直接依赖于 azure,将客户端 SDK 放在接口后面并将该接口作为依赖项传递给您的更高级别的客户端代码。将生产代码的实际 sdk 作为接口实现传递,并且对于您的测试,传递接口的测试实现,您可以在其中返回任何您想要的错误代码或响应。

于 2017-03-28T20:52:28.557 回答