현재 응용 프로그램에 검색 기능을 제공하기 위해 sunspot
gem을 사용하는 Rails 3.2 응용 프로그램을 빌드 중입니다. sunspot
은 Apache Solr을 사용하여 전체 텍스트 인덱싱 및 검색을 수행합니다.sunspot-solr을 사용할 수없는 경우 failsafe를 구축하십시오.
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
바로 지금 내 코드는 누군가가 기사 색인 페이지를 조회하고 결과를 렌더링 할 때마다 검색을 수행합니다. 내 관심사는 solr
이 웬일인지 내려 가고 내 앱이 그걸로 죽는다는 것입니다. solr
이 다운 될 때마다 Article.all
을 수행하는이 작업에 대한 안전 장치를 어떻게 구현할 수 있습니까?
예외에서 나는 단지 rescue
을 알 수 있지만 모든 요청이 solr
으로의 연결 시도를 생성한다는 것을 알고 있습니다. 이것을 막을 수있는 방법이 있습니까? (예를 들어, 한 번 예외를 잡기 앱이 solr
에 다시 연결을 시도하기 전에 5 분간 대기) 태양 흑점에 기여하고 Websolr의 공동 설립자로
고 가용성 옵션에 대해 설명합니다. – aitchnyu
잘 설명하고 많은 도움이됩니다! 감사. – halfdan
나는'sunspot'을 포크로 막아서 타임 아웃을 설정할 수 있었지만, 다음 커밋을 발견했습니다. https://github.com/sunspot/sunspot/commit/abc3b472c917cea50e6e5ace813a4d13ad1ac08a 이미 구현되었습니다. 좋은! – halfdan