Class: Chewy::Journal
- Inherits:
-
Object
- Object
- Chewy::Journal
- Defined in:
- lib/chewy/journal.rb
Overview
A class to perform journal-related actions for the specified indexes/types.
Instance Method Summary collapse
-
#apply(since_time, retries: 10, **import_options) ⇒ Integer
Applies all changes that were done since the specified time to the specified indexes.
-
#clean(until_time = nil) ⇒ Hash
Cleans journal for the specified indexes/types.
-
#initialize(*only) ⇒ Journal
constructor
A new instance of Journal.
Constructor Details
#initialize(*only) ⇒ Journal
Returns a new instance of Journal.
11 12 13 |
# File 'lib/chewy/journal.rb', line 11 def initialize(*only) @only = only end |
Instance Method Details
#apply(since_time, retries: 10, **import_options) ⇒ Integer
Applies all changes that were done since the specified time to the specified indexes.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/chewy/journal.rb', line 21 def apply(since_time, retries: 10, **) stage = 1 since_time -= 1 count = 0 while stage <= retries entries = Chewy::Stash::Journal.entries(since_time, only: @only).to_a.presence or break count += entries.size groups = reference_groups(entries) ActiveSupport::Notifications.instrument 'apply_journal.chewy', stage: stage, groups: groups groups.each do |index, references| index.import(references, .merge(journal: false)) end stage += 1 since_time = entries.map(&:created_at).max end count end |