2010-07-30 2 views
1

J'utilise CommonsHttpSolrServer dans une application Web. Est-il sûr de réutiliser CommonsHttpSolrServer sur plusieurs demandes ou devrais-je instancier un nouvel objet pour chaque demande? Impossible de trouver la réponse dans les documents de l'API.SolrJ Thread Safety

+0

Demandez-vous si vous pouvez utiliser le même objet dans différents threads, ou si vous pouvez utiliser le même objet pour des requêtes séparées? –

+0

Je demande si je peux utiliser le même objet dans différents threads pour des requêtes séparées :) – baggio

Répondre

2

Selon le documentation et les commentaires de source, SolrJ est thread-safe.

Cependant, soyez prudent lorsque vous mettez à jour solr. Selon this post, les transactions sont implémentées par instance, pas par file d'attente. Cela signifie que chaque thread n'a pas sa propre transaction isolée avec laquelle travailler. Rollback annulera chaque appel (indépendamment du thread d'origine) à la dernière validation. Dans l'ensemble, cela signifie que vous devriez pouvoir interroger en toute sécurité (en utilisant le même CommonsHttpSolrServer) avec autant de threads que vous le souhaitez. Toutefois, si vous souhaitez profiter de la restauration, vous devez vous assurer qu'un seul thread met à jour votre instance solr à la fois (quelle que soit la distribution de l'objet).

Questions connexes