Sha256: b1d647ddd0f13ee8d16ca67d3796284392b526d82935531b9068e5ab02476485
Contents?: true
Size: 742 Bytes
Versions: 15
Compression:
Stored size: 742 Bytes
Contents
module Workarea class BulkIndexAdmin include Sidekiq::Worker sidekiq_options lock: :until_executing class << self def perform(klass, ids) ids.each_slice(100) do |group| perform_by_models(klass.constantize.in(id: group).to_a) end end def perform_by_models(models) return if models.empty? Workarea::Search::Admin.bulk { documents_for(models) } end private def documents_for(models) models .map { |m| Workarea::Search::Admin.for(m) } .compact .select(&:should_be_indexed?) .map(&:as_bulk_document) end end def perform(klass, ids) self.class.perform(klass, ids) end end end
Version data entries
15 entries across 15 versions & 1 rubygems