Class: Pgbus::QueueFactory::PriorityStrategy

Inherits:
Object
  • Object
show all
Defined in:
lib/pgbus/queue_factory.rb

Overview

Priority sub-queue strategy: N PGMQ queues per logical name (_p0.._pN).

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ PriorityStrategy

Returns a new instance of PriorityStrategy.



40
41
42
# File 'lib/pgbus/queue_factory.rb', line 40

def initialize(config)
  @config = config
end

Instance Method Details

#physical_queue_names(name) ⇒ Object



44
45
46
# File 'lib/pgbus/queue_factory.rb', line 44

def physical_queue_names(name)
  @config.priority_queue_names(name)
end

#priority?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/pgbus/queue_factory.rb', line 57

def priority?
  true
end

#target_queue(name, priority) ⇒ Object



48
49
50
51
52
53
54
55
# File 'lib/pgbus/queue_factory.rb', line 48

def target_queue(name, priority)
  level = if priority
            priority.clamp(0, @config.priority_levels - 1)
          else
            @config.default_priority.clamp(0, @config.priority_levels - 1)
          end
  @config.priority_queue_name(name, level)
end