Sha256: 3514fd0e2eb8e499133db1b4c56d1653d0fa1921510bc68ce6a5470315ccbfb1
Contents?: true
Size: 1.31 KB
Versions: 2
Compression:
Stored size: 1.31 KB
Contents
require 'aws-sdk-core' module Opener module Daemons class SQS attr_reader :sqs, :name, :url def self.find(name) new(name) end def initialize(name) @sqs = Aws::SQS::Client.new @name = name begin @url = sqs.get_queue_url(:queue_name=>name)[:queue_url] rescue Aws::SQS::Errors::NonExistentQueue => e sqs.create_queue(:queue_name=>name) retry end end def send_message(message) sqs.send_message(:queue_url=>url, :message_body=>message) end def delete_message(handle) sqs.delete_message(:queue_url=>url, :receipt_handle=>handle) end def receive_messages(limit) result = sqs.receive_message(:queue_url=>url, :max_number_of_messages=>limit)[:messages] rescue [] result ? to_hash(result) : [] end def to_hash(messages) messages.map do |m| hash = m.to_hash json_body = JSON.parse(hash.delete(:body)) hash[:body] = json_body["body"] ? json_body["body"] : json_body hash end end def queue_url url end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
opener-daemons-1.3.0 | lib/opener/daemons/sqs.rb |
opener-daemons-1.2.0 | lib/opener/daemons/sqs.rb |