diff --git a/lib/searchkick/process_queue_job.rb b/lib/searchkick/process_queue_job.rb index c300883..32161cb 100644 --- a/lib/searchkick/process_queue_job.rb +++ b/lib/searchkick/process_queue_job.rb @@ -2,17 +2,25 @@ module Searchkick class ProcessQueueJob < ActiveJob::Base queue_as { Searchkick.queue_name } - def perform(class_name:) + def perform(class_name:, inline: false) model = class_name.constantize limit = model.searchkick_options[:batch_size] || 1000 loop do record_ids = model.searchkick_index.reindex_queue.reserve(limit: limit) if record_ids.any? - Searchkick::ProcessBatchJob.perform_later( + batch_options = { class_name: class_name, record_ids: record_ids - ) + } + + if inline + # use new.perform to avoid excessive logging + Searchkick::ProcessBatchJob.new.perform(**batch_options) + else + Searchkick::ProcessBatchJob.perform_later(**batch_options) + end + # TODO when moving to reliable queuing, mark as complete end break unless record_ids.size == limit -- libgit2 0.21.0