Class: MySQL::Search::Jobs::ScheduledUpdaterJob

Inherits:
ActiveJob::Base
  • Object
show all
Defined in:
lib/mysql/search/jobs/scheduled_updater_job.rb

Overview

Periodically updates search indices

Constant Summary collapse

PERIODS =
{
  daily: ->(searchable) { searchable.where(updated_at: 1.day.ago..) },
  weekly: ->(searchable) { searchable.where(updated_at: 1.week.ago..) },
  monthly: ->(searchable) { searchable.where(updated_at: 1.month.ago..) },
  all: ->(searchable) { searchable.all }
}.with_indifferent_access

Instance Method Summary collapse

Instance Method Details

#perform(period) ⇒ Object



17
18
19
20
21
22
23
24
25
# File 'lib/mysql/search/jobs/scheduled_updater_job.rb', line 17

def perform(period)
  searchable_classes.each do |searchable_class|
    seachables(searchable_class, period).find_in_batches do |searchables|
      searchable_class.transaction do
        searchables.each { |searchable| update(searchable_class, searchable) }
      end
    end
  end
end