Hello,
I use RabbitMQ to transfer information from one component to another
within
my system. I have written a rake task which sets up the RabbitMQ client
(the Bunny gem), then sets up a blocking listener so that I can process
incoming messages. When I run this rake task, I use the :environment
task
to load the rails app (the rake task relies on several models and
service
objects).
When I deployed my system to production, I noticed that my Rabbit task
was
not working as expected. Digging into the log, I found that the service
objects and models were not being loaded by rake. This was strange,
since I
called :environment. Looking further into it, I’ve been informed that
this
is the expected behavior, that rake does not preload the rails
environment
in production.
I’m guessing I’m doing something wrong. Should I not be using rake to
set
up these listeners? If rake is acceptable, is there a way to test the
load
path so I see these errors before production? Is :environment only
designed to be used in development?
Thanks,
Tyler