我剛看到一個麒麟服務器配置這樣的,在我的新項目的代碼庫:麒麟服務器工作配置
worker_processes ENV['UNICORN_WORKERS'].to_i || 2
preload_app true
timeout 30
after_fork do |server, worker|
Thread.new do
begin
RABBIT_CONNECTION = Bunny.new(ENV['AMQP_URL'])
RABBIT_CONNECTION.start
rescue Bunny::TCPConnectionFailed => e
puts "Connection failed"
end
begin
OUTGOING_CHANNEL = RABBIT_CONNECTION.create_channel
rescue Bunny::PreconditionFailed => e
puts "Channel-level exception! Code: #{e.channel_close.reply_code},
message: #{e.channel_close.reply_text}".squish
ensure
RABBIT_CONNECTION.close
end
end
end
從我所知道的獨角獸是,它是一個單線程,多進程網絡服務器。
這個Thread.do
塊是做什麼的?如果所有其他代碼都沒有包含在Thread.do
塊中,會發生什麼?
除了你的問題,這是由毗溼奴簡潔地回答,你確定這正是你找到的代碼?因爲它在創建通道後立即關閉連接... – kaikuchn