2016-07-14 53 views
1

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

如何让我的服务防弹 - 能够SOURCEDB处理所有的记录,不管临时故障,例如WCF服务在下降?有没有我可以应用的架构模式?

+0

保持一个变量,你已经通过WCF服务处理的最新记录的LastImportedCreationTime。只有在您成功导出记录时才更新。然后,当您的服务在循环中运行时,只需选择记录> LastImportedCreationTime。这样,如果中断了几个小时,它将赶上所有错过的记录,因为它从最后一个成功处理的记录查询。 – Mangist

回答

1

您应该检查出Polly。它可以让你写这样的代码:

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