docbrown/app/workers/search/bulk_index_worker.rb

18 lines
446 B
Ruby

module Search
class BulkIndexWorker
include Sidekiq::Worker
sidekiq_options queue: :high_priority, lock: :until_executing
def perform(object_class, ids)
data_hashes = object_class.constantize
.eager_load_serialized_data
.where(id: ids)
.find_each.map(&:serialized_search_hash)
search_class = object_class.constantize::SEARCH_CLASS
search_class.bulk_index(data_hashes)
end
end
end