You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
685 B
30 lines
685 B
# 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
|
|
|