From f6f637ffd4ba4ad4e594a7cbc898276b7e31ea65 Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Tue, 30 Jul 2019 20:31:35 -0700 Subject: [PATCH] Added inline option to ProcessQueueJob [skip ci] --- lib/searchkick/process_queue_job.rb | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) 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