Hi Colin, Bill
Here is what we are doing:
- we pass to our "service" the Model objects (we Marshal.dump them in
the main app, enqueue them, and the service Marshal.load them) instead
of their unique ID.
- in the service, we just need to access some of the models' methods.
We know these methods don't need a DB connection.
The reason we have it setup like this is initially, we were running
these tasks in threads within a background job (threads caused a bunch
of issues when we were using the DB, so we made sure what we passed to
the threads would never use the DB).
Bill: we run this service completely independently, on a different
box. So it does not have access to the app.
Maybe we should not be doing something like this?
Thanks!
PJ
On Oct 29, 3:56 pm, Bill Walton <bwalton...@gmail.com> wrote:
> Hi Pierre,
>
>
>
>
>
>
>
>
>
> On Mon, Oct 29, 2012 at 10:50 AM, PierreW <wamre...@googlemail.com> wrote:
> > Hi guys!
>
> > We have moved a part of our Rails app into a "service", i.e. a Ruby
> > script that is demonized and communicates with the main app through a
> > message queue.
> > This service needs to know about the models in the Rails app, but it
> > does not need a database connection. Indeed, we are making sure that
> > in this service, no call to the DB will be made.
>
> > How would you do that? At the moment, we are simply requiring the
> > models files in the service. But since they inherit from
> > ActiveRecord::base, it won't work if there is no connection to a DB
> > available.
>
> > Thanks!
> > Pierre
>
> Not sure if the approach is applicable to your situation without knowing
> more but if you run the script via runner (starting it from the app root,
> it will have access to the Rails environment, including your models.
>
> HTH,
> Bill
--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
No comments:
Post a Comment