Class: Awful::SQS
Instance Method Summary
collapse
Methods inherited from Cli
#initialize
Constructor Details
This class inherits a constructor from Awful::Cli
Instance Method Details
#create(name) ⇒ Object
51
52
53
|
# File 'lib/awful/sqs.rb', line 51
def create(name)
sqs.create_queue(queue_name: name).queue_url.tap(&method(:puts))
end
|
#delete(name) ⇒ Object
56
57
58
59
60
|
# File 'lib/awful/sqs.rb', line 56
def delete(name)
if yes? "Really delete queue #{name}", :yellow
sqs.delete_queue(queue_url: queue_url(name))
end
end
|
#dump(*names) ⇒ Object
63
64
65
66
67
68
69
70
71
|
# File 'lib/awful/sqs.rb', line 63
def dump(*names)
names.map do |name|
sqs.get_queue_attributes(queue_url: queue_url(name), attribute_names: %w[All]).attributes
end.tap do |queues|
queues.each do |queue|
puts YAML.dump(stringify_keys(queue))
end
end
end
|
#ls(prefix = nil) ⇒ Object
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/awful/sqs.rb', line 29
def ls(prefix = nil)
queues = sqs.list_queues(queue_name_prefix: prefix).queue_urls
attr = %w[QueueArn ApproximateNumberOfMessages ApproximateNumberOfMessagesNotVisible LastModifiedTimestamp]
if options[:long]
queues.map do |queue|
sqs.get_queue_attributes(queue_url: queue, attribute_names: attr).attributes
end.output do |list|
print_table list.map { |q|
[
q['QueueArn'].split(':').last,
q['ApproximateNumberOfMessages'],
q['ApproximateNumberOfMessagesNotVisible'],
Time.at(q['LastModifiedTimestamp'].to_i)
]
}
end
else
queues.map { |q| q.split('/').last }.output(&method(:puts))
end
end
|
#purge(name) ⇒ Object
95
96
97
|
# File 'lib/awful/sqs.rb', line 95
def purge(name)
sqs.purge_queue(queue_url: queue_url(name))
end
|
#receive(name) ⇒ Object
88
89
90
91
92
|
# File 'lib/awful/sqs.rb', line 88
def receive(name)
sqs.receive_message(queue_url: queue_url(name), max_number_of_messages: options[:number]).messages.tap do |messages|
puts messages.map(&:body)
end
end
|
#send(name, message) ⇒ Object
74
75
76
|
# File 'lib/awful/sqs.rb', line 74
def send(name, message)
sqs.send_message(queue_url: queue_url(name), message_body: message)
end
|
#send_batch(name, *messages) ⇒ Object
79
80
81
82
83
84
|
# File 'lib/awful/sqs.rb', line 79
def send_batch(name, *messages)
entries = messages.map.with_index do |m, i|
{id: i.to_s, message_body: m}
end
sqs.send_message_batch(queue_url: queue_url(name), entries: entries)
end
|