18 lines
446 B
Ruby
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
|