いくつかの非同期タスクを実行するRoRアプリケーションを配備しようとしています。私はそれを使用して、メッセージキューはRabbitMQです。この組み合わせはStarlingと完璧に連携しましたが、私たちはRabbitのMQを変更することに決めました。 は、私は私のenvironment.rbにPhusion Passenger + WorkBling + RabbitMQ
require 'mq'
if defined?(PhusionPassenger)
PhusionPassenger.on_event(:starting_worker_process) do |forked|
if forked
if EM.reactor_running?
EM.stop_event_loop
EM.release_machine
EM.instance_variable_set('@reactor_running', false)
end
Thread.current[:mq] = nil
AMQP.instance_variable_set('@conn', nil)
end
th = Thread.current
Thread.new{
AMQP.connect(:host => 'localhost'){
th.wakeup
}
}
Thread.stop
end
end
に次のコードを含める必要がありますしかし、それは今、Apacheはメッセージと完全に失敗したことをどこかで読ん:サーバーが内部エラーや設定ミスが発生したため、リクエストを完了できませんでした