3
我使用兔寶寶通過AMQP消費消息。我的應用程序訂閱隊列中的消息,這是一個無休止的阻塞調用(通過訂閱塊)。我希望它在進程中斷時正常關閉(例如,終端中的ctrl + c)。什麼是正確的方法來做到這一點?我希望它處理當前的消息,如果它正在處理一個,然後跳出該塊。處理來自隊列中的消息時的優雅關機寶寶寶石
代碼示例:
trap("INT") do
puts "Stopping now"
Indexer.client.stop # ???
end
module Indexer
extend self
def run
client.queue('indexer.index').subscribe do |msg|
# omitted
end
end
def client
@client ||= Bunny.new.tap(&:start)
end
end
Indexer.run # runs forever