Class: Sidekiq::LimitFetch::Global

Inherits:
Object
  • Object
show all
Defined in:
lib/sidekiq/limit_fetch/global.rb,
lib/sidekiq/limit_fetch/global/selector.rb,
lib/sidekiq/limit_fetch/global/semaphore.rb

Overview

Namespace for global state management including capsule metadata, Redis-backed semaphores, and the Lua-based queue selector.

Defined Under Namespace

Classes: CapsuleMetadata, CapsuleSemaphor, QueueSemaphore, Selector, SemaphoreBase

Class Method Summary collapse

Class Method Details

.capsuleHash{String => CapsuleMetadata}

Holds capsule metadata (will only have 1 capsule in most Sidekiq setups).

Returns:



15
16
17
# File 'lib/sidekiq/limit_fetch/global.rb', line 15

def self.capsule
  @capsule ||= {}
end

.init_capsule(cap) ⇒ CapsuleMetadata

Parameters:

  • cap (Sidekiq::Capsule)

Returns:



22
23
24
25
26
27
28
# File 'lib/sidekiq/limit_fetch/global.rb', line 22

def self.init_capsule(cap)
  capsule[cap.name] = CapsuleMetadata.new(
    name:      cap.name,
    uuid:      SecureRandom.uuid,
    queue_set: cap.queues.to_set,
  )
end