Skip to content

Instantly share code, notes, and snippets.

@JoshMcKin
Created June 7, 2011 16:30
Show Gist options
  • Save JoshMcKin/1012605 to your computer and use it in GitHub Desktop.
Save JoshMcKin/1012605 to your computer and use it in GitHub Desktop.
Queued AWS Queue writes
class QueuedMessage < Aws::Sqs
def queued_messages
@queued_messages ||= []
@queued_messages
end
def initialize(aws_access_key_id = AWS_ACCESS_KEY_ID, aws_secret_access_key = AWS_SECRET_ACCESS_KEY, params = {})
super(aws_access_key_id, aws_secret_access_key,params)
end
def process_queue
while true
message = queued_messages.pop
if message.blank?
close_connection
break
else
send_message(message)
end
end
end
def queue(queue_name = env_queue_name, create = true, visibility = nil)
super(queue_name, create, visibility)
end
def send_message(message)
response = queue.send_message(message)
puts response.id
response
end
def env_queue_name
(Rails.env == "production" ? "ProductQueue" : "DevQueue")
end
def self.send_message(message)
@new_q ||= new
@new_q.queued_messages << message
puts "queued messages => #{@new_q.queued_messages.length}"
@new_q.process_queue
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment