当 Solr 准备好接受另一个导入请求时,如何实时通知我?

How can I be notified in real-time when Solr is ready to accept another import request?

我正在编写一个简单的队列,用于将更新请求发送到 Solr 核心的 DataImportHandler。此处理程序通过 运行 查询数据库来更新 Solr 核心。当一个更新完成后,我想立即发送下一个更新请求。但是,我在检测 Solr 何时准备好接受另一个更新请求时遇到了一些问题。这是我尝试过的:

是否有另一种方法来检测 Solr 何时准备好接受另一个更新请求?

我在类似场景中所做的:

  1. 添加更多 DIH 处理程序,您可以拥有任意数量的处理程序,如有必要,每个都指向它自己的 xml 配置文件。例如添加 10 个
  2. 每次你有一些数据需要 DIH 处理程序时,遍历所有这些数据,你会发现一个空闲的(如果所有数据都很忙,请添加一些 sleep() 以保持理智)。这对我进行大量索引很有效。

当然,这需要您将索引操作并行化,否则此设置将无法运行。

顺便说一句,当您调用 optimize 时,将调用 postOptimize,而不是提交。