대부분의 작업은 네트워크에 따라 다르므로 한 번에 하나의 메시지가 아닌 병렬로 큐를 처리하려고합니다. 내 프리 페치 설정을 사용하지 않는 이유는루비 + AMQP : 병렬 처리 큐
#!/usr/bin/env ruby
# encoding: utf-8
require "rubygems"
require 'amqp'
EventMachine.run do
connection = AMQP.connect(:host => '127.0.0.1')
channel = AMQP::Channel.new(connection)
channel.prefetch 5
queue = channel.queue("pending_checks", :durable => true)
exchange = channel.direct('', :durable => true)
queue.subscribe(:ack => true) do |metadata, payload|
time = rand(3..9)
puts 'waiting ' + time.to_s + ' for message ' + payload
sleep(time)
puts 'done with '+ payoad
metadata.ack
end
end
:
그래서, 나는 다음과 같은 코드를 사용하고 있습니다? 나는 그것이 5 개의 메시지를 얻고 병렬로 처리해야한다고 생각한다.
페르난도 (블로거에 Google 그룹스에 마이클 Klishin에서 정보와의 Stoyan 주셔서 감사합니다) 아래 joelparkerhenderson의 대답이 유용하다고 생각합니다. 문제 해결에 도움이 되었습니까? 어느 쪽이든 저희에게 알려주십시오. –