[rabbitmq-discuss] Ruby Gem with Unicorn server
Mark
static.void.dev at gmail.com
Wed Jan 18 01:03:07 GMT 2012
Do I need both statements?
AMQP::Utilities::EventLoopHelper.run
AMQP::Integration::Rails.start do |connection|
AMQP.channel = AMQP::Channel.new(connection)
end
On 1/17/12 10:10 AM, Michael Klishin wrote:
> Mark:
>
>> Is this all that is required?
> Yes. In 0.9.0 (possibly in 0.8.4 as well) there is a helper that reads config/amqp.yml similarly to config/database.yml:
>
> require "amqp/utilities/event_loop_helper"
> require "amqp/integration/rails"
>
> # this helper detects what app server (if any) is being used and starts EventMachine reactor in a separate
> # thread or just uses .next_tick (for example, with Thin).
> AMQP::Utilities::EventLoopHelper.run
>
> # reads config/amqp.yml, takes environment-specific key out of it (e.g. :development) and
> # merges whatever you pass to .start with it.
> AMQP::Integration::Rails.start do |connection|
> puts "Connected to AMQP broker"
> # this is just an accessor for 1 channel. It has no special properties, just a placeholder for
> # applications that only need one channel
> AMQP.channel = AMQP::Channel.new(connection)
> end
>
> I would like to try to make it detect Unicorn forking, that's why it is not not yet in the documentation: it may slightly change
> for 1.0. Your suggestions about what you want it to do are very welcome.
>
>
>> How come in the example we are connecting to a channel/queue in the after_fork hook? Is this for debugging purposes?
> Channels are typically opened when applications boot. Messages are published there just so that people can see messages flow.
> More on what role channels play: http://rubyamqp.info/articles/amqp_9_1_model_explained/#amqp_channels
>
> MK
>
> http://github.com/michaelklishin
> http://twitter.com/michaelklishin
>
More information about the rabbitmq-discuss
mailing list