Безопасность потоков SolrJ

Я использую CommonsHttpSorrServer в веб-приложении. Безопасно ли повторно использовать CommonsHttpSolrServer для нескольких запросов или мне следует создавать экземпляр нового объекта для каждого запроса? Не удалось найти ответ в документах API.


person baggio    schedule 30.07.2010    source источник
comment
Вы спрашиваете, можете ли вы использовать один и тот же объект в разных потоках или можете ли вы использовать один и тот же объект для отдельных запросов?   -  person Paul Tomblin    schedule 30.07.2010
comment
Я спрашиваю, могу ли я использовать один и тот же объект в разных потоках для отдельных запросов :)   -  person baggio    schedule 30.07.2010


Ответы (1)


Согласно документации и комментариям источника, SolrJ является потокобезопасным.

Однако будьте осторожны при обновлении solr. Согласно это сообщение, транзакции реализуются для каждого экземпляра, а не для очереди. Это означает, что у каждого потока нет собственной изолированной транзакции для работы. Откат откатывает каждый вызов (независимо от исходного потока) до последней фиксации.

В целом это означает, что вы можете безопасно выполнять запросы (используя тот же CommonsHttpSolrServer) с любым количеством потоков. Однако, если вы хотите воспользоваться откатом, вам необходимо убедиться, что только один поток обновляет ваш экземпляр solr за раз (независимо от распределения объектов).

person jntrac    schedule 18.07.2011