Class: Smith::Messaging::Queue

Inherits:
Object
  • Object
show all
Extended by:
Util
Defined in:
lib/smith/messaging/queue.rb

Class Method Summary collapse

Methods included from Util

number_of_consumers, number_of_messages

Class Method Details

.channelObject



44
45
46
47
48
# File 'lib/smith/messaging/queue.rb', line 44

def channel
  open_channel do |channel, ok|
    yield channel
  end
end

.consumers?(queue_def) ⇒ Boolean

Returns:

  • (Boolean)


15
16
17
18
19
# File 'lib/smith/messaging/queue.rb', line 15

def consumers?(queue_def)
  number_of_consumers(queue_def) do |n|
    yield n > 0
  end
end

.messages?(queue_def, &blk) ⇒ Boolean

Returns:

  • (Boolean)


9
10
11
12
13
# File 'lib/smith/messaging/queue.rb', line 9

def messages?(queue_def, &blk)
  number_of_messages(queue_def) do |n|
    yield n > 0
  end
end

.number_of_consumers(queue_def) ⇒ Object



21
22
23
24
25
# File 'lib/smith/messaging/queue.rb', line 21

def number_of_consumers(queue_def)
  status(queue_def) do |_, number_consumers|
    yield number_consumers
  end
end

.number_of_messages(queue_def) ⇒ Object



27
28
29
30
31
# File 'lib/smith/messaging/queue.rb', line 27

def number_of_messages(queue_def)
  status(queue_def) do |number_messages, _|
    yield number_messages
  end
end

.status(queue_def) ⇒ Object



33
34
35
36
37
38
39
40
41
42
# File 'lib/smith/messaging/queue.rb', line 33

def status(queue_def)
  open_channel do |channel, ok|

    queue_def = queue_def.is_a?(QueueDefinition) ? queue_def : QueueDefinition.new(queue_def, :passive => true)
    channel.queue(*queue_def.to_a).status do |number_messages, number_consumers|
      yield number_messages, number_consumers
      channel.close
    end
  end
end