31 lines
685 B
Ruby
31 lines
685 B
Ruby
|
# 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
|