【发布时间】:2009-07-06 21:57:12
【问题描述】:
我正在尝试部署一个执行某些异步任务的 RoR 应用程序。我为此使用工作,消息队列是 RabbitMQ。这种组合与 Starling 完美配合,但我们决定更改 Rabbit 的 MQ。 我在某处读到我应该在我的 environment.rb 中包含以下代码
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 完全失败并显示消息:服务器遇到内部错误或配置错误,无法完成您的请求
【问题讨论】:
标签: ruby-on-rails asynchronous rabbitmq workling