我们使用asp.net c#项目中的Solrnet将文档索引到Solr中。我们正在要求在无法使用Solr的DIH,所以我们用下面的代码索引的产品在某些批次到Solr:在完成之前停止for-loop之间
decimal cycleCount = ProductCount/batchSize;
for (int i = 0; i <= Math.Round(cycleCount); i++)
{
var Products = Products(batchSize, languageId, storeId).ToList();
solrCustomWorker.Add(solrProducts);
solrCustomWorker.Commit();
}
有了巨大的文件的大小,它需要大量的时间(大多数的时候,它需要几小时)来完成整个过程,有时我们需要通过人工干预来中止这个过程。
但是,我不知道如何在完成之前停止这个索引批处理循环。具有大批量文档的单个循环需要几秒钟才能完成,然后提交。但考虑到巨大的不。的文件,而执行完整的索引需要几个小时,我们无法停止这个过程。
任何想法 - 我怎样才能停止这个过程之间..我无法弄清楚这里应该做什么?
请建议。
您可以在这里
尝试读取http://www.davepaquette.com/archive/2015/07/19/cancelling-long-running-queries-in-asp-net- mvc-and-web-api.aspx 我希望这会有所帮助 – gabba
跟踪一个布尔“运行”。将运行设置为false,然后在每个循环中检查它:if(!running)break; – dannymc18