0
0
Fork 0

Fix records not being indexed sometimes (#12024)

It's possible that after commit callbacks were not firing when
exceptions occurred in the process. Also, the default Sidekiq
strategy does not push indexing jobs immediately, which is not
necessary and could be part of the issue too.
This commit is contained in:
Eugen Rochko 2019-10-01 01:19:11 +02:00 committed by GitHub
parent 12c4ec0c83
commit 5c42f47617
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 46 additions and 8 deletions

View file

@ -0,0 +1,30 @@
# frozen_string_literal: true
module Chewy
class Strategy
class CustomSidekiq < Base
class Worker
include ::Sidekiq::Worker
sidekiq_options queue: 'pull'
def perform(type, ids, options = {})
options[:refresh] = !Chewy.disable_refresh_async if Chewy.disable_refresh_async
type.constantize.import!(ids, options)
end
end
def update(type, objects, _options = {})
return unless Chewy.enabled?
ids = type.root.id ? Array.wrap(objects) : type.adapter.identify(objects)
return if ids.empty?
Worker.perform_async(type.name, ids)
end
def leave; end
end
end
end