ich nur eine Einhorn Serverkonfiguration so gesehen habe, in meiner neuen Projekt Code-Basis:Unicorn Server Arbeiter Config
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
Von dem, was ich über Einhorn wissen ist, dass es sich um einen Single-Threaded ist, Multi-Prozess Webserver.
Was macht dieser Thread.do
Block? Was würde passieren, wenn all dieser andere Code dort wäre, ohne im Block Thread.do
eingeschlossen zu sein?
Abgesehen von Ihrer Frage, die von Vishnu prägnant beantwortet wurde, sind Sie sicher, dass dies genau der Code ist, den Sie gefunden haben? Weil es sofort nach dem Erstellen eines Kanals die Verbindung schließt ... – kaikuchn