.NET 服务中的重试体系结构

Architecture of retries in a .NET service

我需要创建一个简单的 .NET 服务。它从 sourceDB 中的单个 table 中读取记录,为每个记录调用 WCF 服务,然后将记录插入到 targetDB 中的单个 table 中。 sourceDB 中的所有记录都有一个创建时间。有单独的批处理过程定期填充 sourceDB。

如何使我的服务无懈可击 - 能够处理 sourceDB 中的所有记录,无论临时中断,例如WCF 服务正在关闭?有没有我可以应用的架构模式?

你应该看看 Polly。它使您能够编写如下代码:

Policy
    .Handle<TimeoutException>()
    .Retry(3, (exception, retryCount, context) =>
    {
        //access your DB(s)
    });