Class: Muninn::Cache::GlobalInvalidationJob

Inherits:
ActiveJob::Base
  • Object
show all
Defined in:
lib/muninn/cache/global_invalidation_job.rb

Constant Summary collapse

BATCH_SIZE =
100

Instance Method Summary collapse

Instance Method Details

#perform(namespaces, scope_name) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/muninn/cache/global_invalidation_job.rb', line 10

def perform(namespaces, scope_name)
  ids = Muninn.all_scope_ids
  expires_in = Muninn.configuration.version_ttl
  ids.each_slice(BATCH_SIZE) do |batch|
    batch.each do |scope_id|
      namespaces.each do |ns|
        VersionCounter.bump(
          namespace: ns,
          scope_name: scope_name,
          scope_id: scope_id,
          expires_in: expires_in
        )
      end
    end
  end
rescue Redis::BaseError => e
  Rails.logger.warn "[Muninn] Redis error in GlobalInvalidationJob: #{e.message}"
end