长期运行的Azure索引器抛出“操作已取消”异常

时间:2019-11-01 12:51:01

标签: azure search cloud azure-sdk-.net

当Azure Indexer运行较大的记录(大约2M +)时,我们将收到“操作已取消”异常。这是日志详细信息-

“该操作已取消。无法从传输连接中读取数据:由于线程退出或应用程序请求,I / O操作已中止。由于线程中的原因,I / O操作已中止退出或申请请求”

我们正在线程下运行索引器。它适用于较小的记录,但适用于较大的记录(1M +),它会引发Socket Exception。

在运行Azure Indexer以获得较大的记录(长时间运行)时,是否有人看到此错误?

(我们已经将httpclient超时增加到serviceClient对象的最大值。)

2 个答案:

答案 0 :(得分:0)

这可能是由于http连接过多而发生的。尝试使您的**HttpClient**保持静态,看看是否有任何改善。要使用最大记录数,需要**HttpClient**超时到最大值。

您可能还需要考虑减少SQL查询时间,以获得最佳索引器性能。另外,请尽可能分享您的代码。

希望有帮助。

答案 1 :(得分:0)

尝试将SearchServiceClient.HttpClient.Timeout设置为Timeout.InfiniteTimeSpan。在将任何请求发送到Azure认知搜索之前,必须设置超时。

client.HttpClient.Timeout = Timeout.InfiniteTimeSpan;