class Chewy::Strategy::DelayedSidekiq::Worker
Constants
- LUA_SCRIPT
Public Instance Methods
perform(type, score, options = {})
click to toggle source
# File lib/chewy/strategy/delayed_sidekiq/worker.rb, line 38 def perform(type, score, options = {}) options[:refresh] = !Chewy.disable_refresh_async if Chewy.disable_refresh_async ::Sidekiq.redis do |redis| members = redis.eval(LUA_SCRIPT, keys: [], argv: [type, score, Scheduler::KEY_PREFIX]) # extract ids and fields & do the reset of records ids, fields = extract_ids_and_fields(members) options[:update_fields] = fields if fields index = type.constantize index.strategy_config.delayed_sidekiq.reindex_wrapper.call do options.any? ? index.import!(ids, **options) : index.import!(ids) end end end
Private Instance Methods
extract_ids_and_fields(members)
click to toggle source
# File lib/chewy/strategy/delayed_sidekiq/worker.rb, line 57 def extract_ids_and_fields(members) ids = [] fields = [] members.each do |member| member_ids, member_fields = member.split(Scheduler::FIELDS_IDS_SEPARATOR).map do |v| v.split(Scheduler::IDS_SEPARATOR) end ids |= member_ids fields |= member_fields end fields = nil if fields.include?(Scheduler::FALLBACK_FIELDS) [ids.map(&:to_i), fields] end