当Azure Indexer正在为更大的记录(约2M以上(运行时,我们收到"操作已取消"异常。以下是日志详细信息-
"操作已取消。无法从传输连接读取数据:I/O操作已中止,原因是线程退出或应用程序请求。I/O操作已终止,原因是退出线程或应用程序要求">
我们正在线程下运行索引器。它适用于较小的记录,但对于较大的记录(1M+(,它抛出Socket Exception。
有人在为较大的记录运行Azure Indexer(长时间运行(时看到此错误吗?
(我们已经将httpclient超时增加到serviceClient对象的最大值。(
这可能是因为http连接过多。试着让你的**HttpClient**
保持静态,看看是否有什么改进。需要**HttpClient**
超时到最大值才能使用最大记录执行。
您可能还想考虑减少sql查询时间,以获得最佳索引器性能。如果可能的话,也请分享你的代码。
希望能有所帮助。
尝试将SearchServiceClient.HttpClient.Timeout
设置为Timeout.InfiniteTimeSpan
。在向Azure认知搜索发送任何请求之前,您必须设置超时。
client.HttpClient.Timeout = Timeout.InfiniteTimeSpan;