[Backgroundrb-devel] Autostarting and job keys...

Brett Walker lapomme00 at gmail.com
Mon Aug 7 10:24:42 EDT 2006


I think I've got it figured out.  Turns out I was mucking with the
plugin's start.rake instead of the one in scripts/backgroundrb.  My
idea seems to work.

In the 2 places where this line exits

      DRb.start_service("druby://#{CONFIG['host']}:#{CONFIG['port']}",
BackgrounDRb::MiddleMan.new(CONFIG['timer_sleep'] || 60))

replace with

      middle_man = BackgrounDRb::MiddleMan.new(CONFIG['timer_sleep'] || 60)
      DRb.start_service("druby://#{CONFIG['host']}:#{CONFIG['port']}",
middle_man)

This keeps the middle man that was created and attached to the DRb
service.  Now we pass that into Auto.start

      Auto.start(middle_man)

and use it to autostart the jobs

  def self.start(middle_man)
     .......
      middle_man.new_worker(:class => entry['class'],
                         :args => entry['args'],
                         :job_key => key)

This gives me access to the jobs via the MiddleMan in my application.

Does this seem safe and a valid fix?

Cheers,
Brett

On 8/7/06, Brett Walker <lapomme00 at gmail.com> wrote:
> I've now got 5 processes auto started.  But I when I query the
> MiddleMan for their keys (in script/console), it doesn't find them.
> Looking at the start script, it looks like it might be creating a new
> MiddleMan object for each autostart
>
>       BackgrounDRb::MiddleMan.new.new_worker(:class => entry['class'],
>
> Even changing it to
>
>      BackgrounDRb::MiddleMan.new_worker(:class => entry['class'],
>
> didn't seem to take care of it.  I even tried to create a single
> MiddleMan and pass that to autostart, still to no avail.
>
> Is there a way to have the autostarted jobs be manages by the main
> MiddleMan object?
>
> Cheers,
> Brett
>


More information about the Backgroundrb-devel mailing list