同步Solr Commit

时间:2012-08-12 00:07:27

标签: java solr lucene

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

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

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

你们如何解决这个问题?

这些任务是我无法真正改变的现成的非平凡组件。

谢谢, 最大

1 个答案:

答案 0 :(得分:3)

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