[rabbitmq-discuss] Ruby Gem with Unicorn server
Mark
static.void.dev at gmail.com
Tue Jan 17 17:40:16 GMT 2012
Reading through
http://rubydoc.info/github/ruby-amqp/amqp/master/file/docs/ConnectingToTheBroker.textile
and I noticed when using the AMQP gem with Unicorn you must:
/"start the EventMachine reactor and AMQP connection after the master
process forks workers"/
We've been using Unicorn for some time now so I'm aware of
reestablishing connections after Unicorn forks, however I have some
questions in regards to AMQP. Do I simply need to start up AMQP in a
separate thread as in the example:
Thread.new { AMQP.start }
Then in my controllers I would need to do everything inside a next_tick
block?
EventMachine.next_tick do
...
end
Is this all that is required? How come in the example we are connecting
to a channel/queue in the after_fork hook? Is this for debugging purposes?
I also have one other question regarding EventMachine#next_tick. I've
read that:
/"Everything scheduled using EM#next_tick will happen synchronously in
the main thread. Any long running tasks inside an EM#next_tick block
will cause the entire program to block until complete. Typically a bad
thing."
/Does this mean we don't gain anything by using EM in this fashion.. ie
our attempt to use AMQP asynchronously is actually synchronous?
Thanks for the clarification!
- M
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20120117/5e6f7e48/attachment.htm>
More information about the rabbitmq-discuss
mailing list