Re: Re: Background Job

Peter De Berdt
Thu, 12 Aug 2010 14:15:16 -0000

On 12 Aug 2010, at 15:14, Bill Walton wrote:

>>> It''s working quite well for us.  The persistent queue was
the most
>>> important aspect for me.
>>
>> Hi Bill, thanks for your feedback. Did you also consider delayed_job?
>> It''s a tie between the two of them.
>
> I did, though I cannot remember at the moment exactly what caused me
> to pick Bj.  I think it may have been the Engine Yard recommendation.
> Then there''s the fact that Ara wrote it and he''s well
regarded in the
> Ruby community.  Or maybe it was that I though a Bj sounded like more
> fun than a delayed_job ;-)

Something you might also consider is Nanite, we''re using it in our
flagship product and it''s great. It has the persisent queue you are
looking for and is self healing also. It uses RabbitMQ as the
messaging system.

http://github.com/ezmobius/nanite

We use it for sending mails in the background (high volumes) across
several applications running on the same server. Our agents (i.e.
workers) are very small pure Ruby applications designed for one
specific goal, in this case sending mails (with a few additional
quirks such as automatically extracting images and attaching them and
making all css styles inline, PDF generation and attaching etc).

We''ve used the other solutions you mentioned in the past, but they all
had their drawbacks. Once we switched to Nanite, we never looked back.
About 20 apps are using the same agents, the memory footprint is just
so much smaller, the self healing cluster is great, we can add or
remove agents as we see fit without any app restart.

In terms of implementing it, it''s a bit more of "getting your head
around it" though.


Best regards

Peter De Berdt