我们正在使用 .NET 3.5 应用程序,该应用程序正在快速接近旧状态。我们有一个现有的 SOAP 服务,它从我们的数据库中读取记录并将它们保存到第三方 MS SQL 数据库中,以单个批次发送所有数据行。
这一直运作良好,但最近我们接收了一个比以往任何时候都大得多的客户,而且他们正在传输更大的批次,以至于他们已经开始失败。我们已经提高了 IIS 中的超时和最大内存大小,并在 web.config 中最大化了 maxRequestLength,但我们仍然遇到了大小问题。
所以,我知道从长远来看,我们应该考虑从 SOAP 转移到 WCF,并且计划正在制定中。但与此同时,我们需要对这个新客户进行短期修复。当然,为了让业务和销售人员满意,我们需要它很快。
我想知道最佳实践方法可能是什么。最初我在想这样的事情,但我可能在盒子里想得太多了:
建立一个我们不想一次尝试同步所有记录的基准标记。
在尝试保存数据之前,请对照该基准检查记录数
如果它高于它,则将传输分解为低于该基准的部分。SELECT TOP 10000 * FROM table WHERE sent = false 等,如果基准是 10000。那么一旦提交,这些记录的更新发送为 true。重复。
显然,这会减慢进程,所以为了处理用户体验,我们可能想要折腾一个状态栏,以便他们可以看到进度。
我在正确的轨道上吗?