class Trusty::IronIo::QueueProcessor
Attributes
client[R]
queue_name[R]
Public Class Methods
new(queue_name)
click to toggle source
# File lib/trusty/iron_io/queue_processor.rb, line 16 def initialize(queue_name) @queue_name = queue_name @client = IronMQ::Client.new(:token => ENV['IRON_TOKEN'], :project_id => ENV['IRON_PROJECT_ID']) end
run(queue_name, *args, &block)
click to toggle source
helper method forwards to “run” instance method
# File lib/trusty/iron_io/queue_processor.rb, line 10 def self.run(queue_name, *args, &block) new(queue_name).run(*args, &block) end
Public Instance Methods
default_options()
click to toggle source
# File lib/trusty/iron_io/queue_processor.rb, line 21 def default_options { :timeout => 30, :break_if_nil => true } end
queue()
click to toggle source
# File lib/trusty/iron_io/queue_processor.rb, line 25 def queue @queue ||= client.queue(queue_name) end
run(options = {}, &block)
click to toggle source
# File lib/trusty/iron_io/queue_processor.rb, line 29 def run(options = {}, &block) options = default_options.merge(options) queue.poll(options) do |message|#, :break_if_nil => true do |message| # parse body for better data formatting begin body = JSON.parse message.body rescue JSON::ParserError => ex body = message.body end try_with_data :message_id => message.id, :body => body do block.call(message, queue) end end end
webhook_url()
click to toggle source
# File lib/trusty/iron_io/queue_processor.rb, line 47 def webhook_url url_template = 'https://mq-aws-us-east-1.iron.io/1/projects/%{project_id}/queues/%{queue_name}/messages/webhook?oauth=%{token}' url_template % { project_id: ENV['IRON_TOKEN'], token: ENV['IRON_PROJECT_ID'], queue_name: queue_name } end