Module: SimpleMessageQueue
- Defined in:
- lib/simple_message_queue.rb,
lib/simple_message_queue/errors.rb,
lib/simple_message_queue/version.rb,
lib/simple_message_queue/notification.rb,
lib/simple_message_queue/configuration.rb
Defined Under Namespace
Classes: Configuration, ConfigurationError, EnvironmentError, NotImplementedError, Notification
Constant Summary
collapse
- VERSION =
"0.0.5"
Class Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Class Attribute Details
.configuration ⇒ Object
Class Methods only available to SimpleMessageQueue
10
11
12
|
# File 'lib/simple_message_queue.rb', line 10
def configuration
@configuration
end
|
Class Method Details
12
13
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/simple_message_queue.rb', line 12
def configure
self.configuration ||= Configuration.new
yield(configuration)
if self.configuration.sns_notifications
topics = ['send_message_failure']
topics.each do |topic|
SimpleMessageQueue::Notification::Topic.new(topic)
end
end
end
|
Instance Method Details
#count ⇒ Object
46
47
48
|
# File 'lib/simple_message_queue.rb', line 46
def count
queue.approximate_number_of_messages
end
|
#delete_queue ⇒ Object
50
51
52
|
# File 'lib/simple_message_queue.rb', line 50
def delete_queue
queue.delete
end
|
#exists? ⇒ Boolean
54
55
56
57
58
59
60
|
# File 'lib/simple_message_queue.rb', line 54
def exists?
true if sqs.queues.named(queue_name)
rescue
false
end
|
#process_message(message) ⇒ Object
#queue ⇒ Object
42
43
44
|
# File 'lib/simple_message_queue.rb', line 42
def queue
@queue ||= sqs.queues.create(queue_name)
end
|
#receive ⇒ Object
83
84
85
86
87
88
89
90
91
|
# File 'lib/simple_message_queue.rb', line 83
def receive
@count = 0
logger.info "Receiving messages for #{queue_name} at #{DateTime.now}"
queue.poll(:idle_timeout => SimpleMessageQueue.configuration.idle_timeout, :wait_time_seconds => SimpleMessageQueue.configuration.wait_time_seconds) do |message|
@count += 1
process_message(message)
end
@count
end
|
#send(message) ⇒ Object
62
63
64
65
66
67
68
69
70
71
72
73
|
# File 'lib/simple_message_queue.rb', line 62
def send(message)
begin
queue.send_message(message)
rescue => error
logger.error "There was an error when sending an item to #{queue_name} at #{DateTime.now}. Error: #{error.to_s}"
if defined?(SimpleMessageQueue.configuration.sns_notifications) && SimpleMessageQueue.configuration.sns_notifications == true
topic = SimpleMessageQueue::Notification::Topic.new('send_message_failure')
topic.send("There was an error when sending an item to #{queue_name} at #{DateTime.now}. Error: #{error.to_s}", "SimpleMessageQueue: Send Message Failure")
end
end
end
|