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/configuration.rb
Defined Under Namespace
Classes: Configuration, ConfigurationError, EnvironmentError, NotImplementedError
Constant Summary
collapse
- VERSION =
"0.0.3"
Class Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Class Attribute Details
.configuration ⇒ Object
Class Methods only available to SimpleMessageQueue
9
10
11
|
# File 'lib/simple_message_queue.rb', line 9
def configuration
@configuration
end
|
Class Method Details
11
12
13
14
|
# File 'lib/simple_message_queue.rb', line 11
def configure
self.configuration ||= Configuration.new
yield(configuration)
end
|
Instance Method Details
#count ⇒ Object
37
38
39
|
# File 'lib/simple_message_queue.rb', line 37
def count
queue.approximate_number_of_messages
end
|
#delete_queue ⇒ Object
41
42
43
|
# File 'lib/simple_message_queue.rb', line 41
def delete_queue
queue.delete
end
|
#exists? ⇒ Boolean
45
46
47
48
49
50
51
|
# File 'lib/simple_message_queue.rb', line 45
def exists?
true if sqs.queues.named(queue_name)
rescue
false
end
|
#logger ⇒ Object
57
58
59
60
61
62
63
|
# File 'lib/simple_message_queue.rb', line 57
def logger
if SimpleMessageQueue.configuration.logger
@logger ||= SimpleMessageQueue.configuration.logger
else
@logger ||= Logger.new(STDOUT)
end
end
|
#process_message(message) ⇒ Object
75
76
77
|
# File 'lib/simple_message_queue.rb', line 75
def process_message(message)
raise SimpleMessageQueue::NotImplementedError.new(name)
end
|
#queue ⇒ Object
33
34
35
|
# File 'lib/simple_message_queue.rb', line 33
def queue
@queue ||= sqs.queues.create(queue_name)
end
|
#queue_name ⇒ Object
24
25
26
27
28
29
30
31
|
# File 'lib/simple_message_queue.rb', line 24
def queue_name
raise SimpleMessageQueue::EnvironmentError unless environment_defined?
if @queue_name
@queue_name + "_#{SimpleMessageQueue.configuration.environment}"
else
name.underscore.gsub('/', '_') + "_#{SimpleMessageQueue.configuration.environment}"
end
end
|
#receive ⇒ Object
65
66
67
68
69
70
71
72
73
|
# File 'lib/simple_message_queue.rb', line 65
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
53
54
55
|
# File 'lib/simple_message_queue.rb', line 53
def send(message)
queue.send_message(message)
end
|
#sqs ⇒ Object
18
19
20
21
22
|
# File 'lib/simple_message_queue.rb', line 18
def sqs
raise SimpleMessageQueue::ConfigurationError unless SimpleMessageQueue.configuration
raise SimpleMessageQueue::EnvironmentError unless environment_defined?
@@sqs ||= AWS::SQS.new(:access_key_id => SimpleMessageQueue.configuration.access_key_id, :secret_access_key => SimpleMessageQueue.configuration.secret_access_key)
end
|