Sha256: aabc4e9dcf774c5b4d19aac93aa366b8d6384dc30518515559ffaedc9362a667
Contents?: true
Size: 1.52 KB
Versions: 1
Compression:
Stored size: 1.52 KB
Contents
require 'carrot' module Solrizer module Rabbit class QueueIndexWorker def initialize Thread.current[:carrot] = Carrot.new()#:host=>'mediashelf.eu') @q = Carrot.queue(Solrizer::Rabbit.queue_name) @buff = BufferedIndexer.new(ActiveFedora::SolrService.instance.conn) @stopped = false end def stop puts "finishing writes" @stopped=true end def run indexer = Solrizer::Fedora::Indexer.new while !@stopped && msg = @q.pop begin obj = Solrizer::Fedora::Repository.get_object(msg) solr_doc = indexer.create_document( obj ) @buff.add(solr_doc) rescue RSolr::Error::Http, Errno::ECONNREFUSED => exception puts "Fatal #{exception.class}, exception see log" logger.fatal( "\n\n#{exception.class} (#{exception.message})\n\n") logger.flush if logger.respond_to? :flush #Rails logger is flushable, mediashelf-loggable isn't exit! rescue StandardError => exception puts "Caught #{exception.class}, while procesing `#{msg}` see log" logger.fatal( "\n\n#{exception.class} (#{exception.message}) while procesing `#{msg}`:\n " + exception.backtrace.join("\n ") + "\n\n") logger.flush if logger.respond_to? :flush #Rails logger is flushable, mediashelf-loggable isn't end end puts "flushing buffers" @buff.flush(true) Carrot.stop puts "done" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
solrizer-rabbit-0.0.1 | lib/solrizer-rabbit/queue_index_worker.rb |