Sha256: ad44f4d806dd96494fb870276023175c70dc7b2deff26f2be55c2f45d26a4836

Contents?: true

Size: 1.04 KB

Versions: 4

Compression:

Stored size: 1.04 KB

Contents

require 'right_aws'

module TranscodingMachine
  class ResultQueue
    def initialize
      @sqs = RightAws::SqsGen2.new
      @consuming = false
    end

    def start_consuming(queue_names, &block)
      @queue_names = queue_names.compact.uniq
      @queues = @queue_names.map {|name| @sqs.queue(name) }
      @consuming = true
      
      while(@consuming)
        @queues.map do |queue|
          consume_queue(queue, &block)
        end
      end
    end
    
    def consume_queue(queue, &block)
      puts "consuming queue #{queue.name}"
      number_of_consumed_messages = 0
      
      while message = queue.pop
        consume_message(message, &block)
        number_of_consumed_messages += 1
      end
      sleep(5) if number_of_consumed_messages == 0
      number_of_consumed_messages
    end
    
    def consume_message(message, &block)
      message_properties = YAML.load(message.body)
      
      begin
        yield(message_properties)
      rescue Exception => e
        
      end
      
      @last_active_at = Time.now
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
staugaard-transcoding_machine-0.1.1 lib/transcoding_machine/client/result_queue.rb
staugaard-transcoding_machine-0.1.2 lib/transcoding_machine/client/result_queue.rb
staugaard-transcoding_machine-0.1.3 lib/transcoding_machine/client/result_queue.rb
staugaard-transcoding_machine-0.1.4 lib/transcoding_machine/client/result_queue.rb