gpt4 book ai didi

c# - 如何延长 SolrConnection 中的超时时间? (SolrConnectionException : The operation has timed out)

转载 作者:行者123 更新时间:2023-11-30 22:34:30 27 4
gpt4 key购买 nike

如何扩展/修改用于 SolrConnection 对象的超时值?

我有一个长时间运行的优化操作,似乎没有在提供的默认连接超时内完成。我正在使用的操作是 ISolrOperations<?>.Optimize() .我没有看到任何使用 ISolrOperations 增加超时的选项。直接反对。

我正在使用 Castle Windsor用于实例化的 IoC 容器,以便拥有多个内核。

这是完整的堆栈跟踪:

SolrNet.Exceptions.SolrConnectionException: The operation has timed out ---> System.Net.WebException: The operation has timed out
at System.Net.HttpWebRequest.GetResponse()
at HttpWebAdapters.Adapters.HttpWebRequestAdapter.GetResponse() in c:\prg\SolrNet\svn\HttpWebAdapters\Impl\HttpWebRequestAdapter.cs:line 36
at SolrNet.Impl.SolrConnection.GetResponse(IHttpWebRequest request) in c:\prg\SolrNet\svn\SolrNet\Impl\SolrConnection.cs:line 201
at SolrNet.Impl.SolrConnection.PostStream(String relativeUrl, String contentType, Stream content, IEnumerable`1 parameters) in c:\prg\SolrNet\svn\SolrNet\Impl\SolrConnection.cs:line 113
--- End of inner exception stack trace ---
at SolrNet.Impl.SolrConnection.PostStream(String relativeUrl, String contentType, Stream content, IEnumerable`1 parameters) in c:\prg\SolrNet\svn\SolrNet\Impl\SolrConnection.cs:line 121
at SolrNet.Impl.SolrConnection.Post(String relativeUrl, String s) in c:\prg\SolrNet\svn\SolrNet\Impl\SolrConnection.cs:line 87
at SolrNet.Commands.OptimizeCommand.Execute(ISolrConnection connection) in c:\prg\SolrNet\svn\SolrNet\Commands\OptimizeCommand.cs:line 76
at SolrNet.Impl.SolrBasicServer`1.Send(ISolrCommand cmd) in c:\prg\SolrNet\svn\SolrNet\Impl\SolrBasicServer.cs:line 96
at SolrNet.Impl.SolrBasicServer`1.SendAndParseHeader(ISolrCommand cmd) in c:\prg\SolrNet\svn\SolrNet\Impl\SolrBasicServer.cs:line 106
at SolrNet.Impl.SolrBasicServer`1.Optimize(CommitOptions options) in c:\prg\SolrNet\svn\SolrNet\Impl\SolrBasicServer.cs:line 69
at SolrNet.Impl.SolrServer`1.Optimize() in c:\prg\SolrNet\svn\SolrNet\Impl\SolrServer.cs:line 206
at NationalLaborRelations.SearchAgent.SearchAgentBase.Optimize(ISolrOperations`1 s) in C:\PROJECTS\NLRB\Search\SearchAgent\SearchAgent\SearchAgentBase.cs:line 354

请注意,优化确实成功发生,但 SolrNet 不会在抛出此错误之前等待它完成。

最佳答案

您可以安全地忽略此超时。正如您已经发现的那样,该命令无论如何都能在 Solr 上成功运行。

或者如果您想设置连接超时,您可以在 Windsor 中使用组件模型事件对其进行配置:

var c = new WindsorContainer();
c.Kernel.ComponentModelCreated += model => {
if (model.Implementation == typeof(SolrConnection))
model.Parameters.Add("Timeout", "200000");
};
c.AddFacility("solr", new SolrNetFacility("http://localhost:8983/solr")); // or whatever

超时值以毫秒表示。

关于c# - 如何延长 SolrConnection 中的超时时间? (SolrConnectionException : The operation has timed out),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7799602/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com