gpt4 book ai didi

c# - SolrNet连接说明

转载 作者:太空狗 更新时间:2023-10-29 23:17:59 24 4
gpt4 key购买 nike

为什么 SolrNet 连接的容器保持静态?这是一个非常大的错误,因为在我们的应用程序中,当我们向我们的应用程序发送异步请求时,SolrNet 行为异常。我如何在 SolrNet 中避免这个问题?

class P
{
static void M(string[] a)
{
Thread t = new Thread(delegate()
{
f1();
});
Thread t1 = new Thread(delegate()
{
f2();
});

t.Start();
t1.Start();
t.Join();
t1.Join();
}

static void f1()
{
Startup.Init<Doc>(new SolrNet.Impl.SolrPostConnection("http://localhost:8983/solr3/"));
ISolrOperations<Doc> solrOperations2 = ServiceLocator.Current.GetInstance<ISolrOperations<Document>>();
}

static void f2()
{
Startup.Init<Doc>(new SolrNet.Impl.SolrPostConnection("http://localhost:8983/solr1/"));
ISolrOperations<Doc> solrOperations2 = ServiceLocator.Current.GetInstance<ISolrOperations<Document>>();
}
}

最佳答案

  1. 作为explained in the wiki ,内置容器(Startup)目前仅限于访问具有不同映射类型的多个核心/实例。如果你想要更多的灵 active ,要么切换到 Windsor/StructureMap/Autofac,要么 help implement this feature .

  2. 内置容器中的注册可能不像您所发现的那样是线程安全的,但是通过在不同线程中注册/初始化 SolrNet 您将一无所获。只需将所有初始化移动到单个线程,当您执行 solr.Query(...) 或 solr.Add(...) 时执行实际繁重的工作, 是线程安全的。

关于c# - SolrNet连接说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6830623/

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