Je suis en train de construire une application Rails 3.2 qui utilise la gemme sunspot
pour fournir une fonctionnalité de recherche à mon application. sunspot
utilise Apache Solr pour effectuer l'indexation et la recherche en texte intégral.
def index
@search = Article.search do
fulltext params[:search]
with(:published_at).less_than(Time.zone.now)
paginate :page => params[:page], :per_page => 10
facet(:published_month)
end
@articles = @search.results
respond_to do |format|
format.html # index.html.erb
format.json { render json: @articles }
end
end
Pour l'instant, mon code se contente d'effectuer une recherche chaque fois qu'une personne consulte la page d'index de l'article, puis d'afficher les résultats. Ce qui me préoccupe, c'est que solr
s'arrête pour une raison quelconque et mon application disparaît avec elle. Comment puis-je mettre en place une sécurité intégrée pour cette action qui effectue une opération de base de Article.all
chaque fois que solr
s'effondre ?
Je sais que je pourrais juste rescue
de l'exception, mais cela signifierait toujours que chaque demande génère une tentative de connexion à solr
. Existe-t-il un moyen d'éviter cela ? (Par exemple, en capturant l'exception une fois et en attendant 5 minutes avant que l'application n'essaie de se reconnecter à l'application solr
)