Class: Thermos::RefillJob

Inherits:
ActiveJob::Base
  • Object
show all
Defined in:
lib/thermos/refill_job.rb

Instance Method Summary collapse

Instance Method Details

#perform(model) ⇒ Object



5
6
7
8
# File 'lib/thermos/refill_job.rb', line 5

def perform(model)
  refill_primary_caches(model)
  refill_dependency_caches(model)
end

#refill_dependency_caches(model) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/thermos/refill_job.rb', line 21

def refill_dependency_caches(model)
  BeverageStorage.instance.beverages.each do |beverage|
    beverage
      .lookup_keys_for_dep_model(model)
      .each do |lookup_key|
        Thermos::RebuildCacheJob.set(queue: beverage.queue).perform_later(
          beverage.key,
          lookup_key,
        )
      end
  end
end

#refill_primary_caches(model) ⇒ Object



10
11
12
13
14
15
16
17
18
19
# File 'lib/thermos/refill_job.rb', line 10

def refill_primary_caches(model)
  BeverageStorage.instance.beverages.each do |beverage|
    if beverage.model == model.class && beverage.should_fill?(model)
      Thermos::RebuildCacheJob.set(queue: beverage.queue).perform_later(
        beverage.key,
        model.send(beverage.lookup_key),
      )
    end
  end
end