Sha256: 77c32fca8f7c9c770a8370250a816828e785cc629f8288ec82e1fb7b90f46a61
Contents?: true
Size: 750 Bytes
Versions: 1
Compression:
Stored size: 750 Bytes
Contents
class Supernova::BatchIndexer def initialize(index, batch_size = 1_000) @index = index @batch_size = batch_size @docs = [] if block_given? yield(self) finish end end def index_doc(doc) @docs << doc if should_index? do_index end end def finish do_index end private def should_index? @docs.count >= @batch_size end def do_index started = Time.now @index.index_docs(@docs) if @docs.any? Supernova.log(do_index_log_message(started, Time.now, @docs)) @docs = [] end def do_index_log_message(started, finished, docs) diff = finished - started "indexed #{docs.count} docs in %.3f seconds (%.1f docs/second)" % [diff, docs.count / diff] end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
supernova-core-0.0.1 | lib/supernova/batch_indexer.rb |