Commit 3f6d9d24ce49fa863560e5b02c02d64e38e7c020

Authored by Andrew Kane
1 parent 5532ca79

Fixed retries for BulkReindexJob

lib/searchkick/bulk_reindex_job.rb
@@ -6,16 +6,14 @@ module Searchkick @@ -6,16 +6,14 @@ module Searchkick
6 klass = class_name.constantize 6 klass = class_name.constantize
7 index = index_name ? Searchkick::Index.new(index_name) : klass.searchkick_index 7 index = index_name ? Searchkick::Index.new(index_name) : klass.searchkick_index
8 record_ids ||= min_id..max_id 8 record_ids ||= min_id..max_id
9 - Searchkick.callbacks(:bulk) do  
10 - index.import_scope(  
11 - Searchkick.load_records(klass, record_ids),  
12 - method_name: method_name,  
13 - batch: true,  
14 - batch_id: batch_id,  
15 - delete_missing: delete_missing,  
16 - record_ids: record_ids  
17 - )  
18 - end 9 + index.import_scope(
  10 + Searchkick.load_records(klass, record_ids),
  11 + method_name: method_name,
  12 + batch: true,
  13 + batch_id: batch_id,
  14 + delete_missing: delete_missing,
  15 + record_ids: record_ids
  16 + )
19 end 17 end
20 end 18 end
21 end 19 end
lib/searchkick/index.rb
@@ -445,8 +445,12 @@ module Searchkick @@ -445,8 +445,12 @@ module Searchkick
445 445
446 begin 446 begin
447 # bulk reindex 447 # bulk reindex
448 - method_name ? bulk_update(records, method_name) : import(records)  
449 - bulk_delete(delete_records) 448 + possibly_bulk do
  449 + if records.any?
  450 + method_name ? bulk_update(records, method_name) : import(records)
  451 + end
  452 + bulk_delete(delete_records) if delete_records.any?
  453 + end
450 rescue Faraday::ClientError => e 454 rescue Faraday::ClientError => e
451 if retries < 1 455 if retries < 1
452 retries += 1 456 retries += 1
@@ -458,6 +462,17 @@ module Searchkick @@ -458,6 +462,17 @@ module Searchkick
458 end 462 end
459 end 463 end
460 464
  465 + # use bulk if no callbacks value set
  466 + def possibly_bulk
  467 + if Searchkick.callbacks_value
  468 + yield
  469 + else
  470 + Searchkick.callbacks(:bulk) do
  471 + yield
  472 + end
  473 + end
  474 + end
  475 +
461 def batches_key 476 def batches_key
462 "searchkick:reindex:#{name}:batches" 477 "searchkick:reindex:#{name}:batches"
463 end 478 end