2

我有多个 Java 任务可以访问 solr 并按顺序编写和提交一些文档。这些任务通常会更改同一个文档。我的问题是一个任务可能会触发提交、终止、将控制权传递给另一个任务,而另一个任务又会发出另一个提交。在第二个任务开始之前没有完成第一次提交时,我得到 solr lock timeout 异常。

我正在研究的一个解决方案是让这些任务中的每一个都简单地进行更新而不提交。然而,问题是早期任务的变化对后面的任务是不可见的。因此,后面的任务最终会覆盖之前所做的一些更改。

现在,我正在调查是否可以在触发下一个任务之前检测到每个提交的结束。任何的想法?

你们将如何解决这个问题?

这些任务是现成的重要组件,我无法真正改变。

谢谢,马克斯

4

1 回答 1

3

听起来您正试图在“任务”终止后在后台进行提交。你最好同步进行提交;即在提交成功(或失败)之前不要终止任务。(我承认我不使用 Solr,而且我不知道您如何将这些想法映射到 Solr API。)

于 2012-08-12T01:21:08.280 回答