[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

[ANN] slave-0.2.0

Ara.T.Howard

9/23/2006 10:53:00 PM

3 Answers

Ezra Zygmuntowicz

9/24/2006 4:28:00 AM

0


On Sep 23, 2006, at 3:52 PM, ara.t.howard@noaa.gov wrote:

>
> SYNOPSIS
>
> the Slave class forks a process and starts a drb server in the
> child using
> any object as the server. the process is detached so it is not
> required
> (nor possible) to wait on the child pid. a Heartbeat is set up
> between the
> parent and child processes so that the child will exit of the
> parent exits
> for any reason - preventing orphaned slaves from running
> indefinitely. the
> purpose of Slaves is to be able to easily set up a collection of
> objects
> communicating via drb protocols instead of having to use IPC.
>
> <snip>
>
> -a


This is a great library Ara, I am writing a library that wraps up
the slave lib into another interface for controlling jobs with timers
and a few other things. So the master process holds a thread pool
with references to slave classes in it so that you can set a limit on
the number of running slaves. Using it to offload jobs from a rails
app to not hold up the http flow. I have a question though. What
would be the cleanest way to have a slave class signal that it is
finished working and needs to be kill'ed. I know there is the
shutdown method that you could call from the master process to
shutdown a slave. But is there something similar that can be called
from a slave process? Or should I just let the slave process exit!
and let the heartbeat cleanup after the dead slaves?

Thanks
-Ezra

Ara.T.Howard

9/24/2006 3:57:00 PM

0

Ezra Zygmuntowicz

9/24/2006 9:40:00 PM

0


On Sep 24, 2006, at 8:57 AM, ara.t.howard@noaa.gov wrote:

> On Sun, 24 Sep 2006, Ezra Zygmuntowicz wrote:
>
>> This is a great library Ara, I am writing a library that wraps up
>> the
>> slave lib into another interface for controlling jobs with timers
>> and
>> a few other things. So the master process holds a thread pool with
>> references to slave classes in it so that you can set a limit on the
>> number of running slaves. Using it to offload jobs from a rails
>> app to
>> not hold up the http flow. I have a question though. What would
>> be the
>> cleanest way to have a slave class signal that it is finished
>> working
>> and needs to be kill'ed. I know there is the shutdown method that
>> you
>> could call from the master process to shutdown a slave. But is there
>> something similar that can be called from a slave process? Or
>> should I
>> just let the slave process exit! and let the heartbeat cleanup after
>> the dead slaves?
>
> hmmm. good question. i could add a feature where at_exit handlers
> could be
> added, somthing like
>
>
> s = Slave.new( :at_exit => lambda{}){ do_child_stuff }
>
>
> would that be sufficient?
>
> -a


Ara-

Yeah that would work fine I think. So that would call the lambda
when the child process calls exit! ? Is there any way for a slave to
call back to the parent process? Or is there a way to get the drb uri
of the parent from the child?

Thanks for slave and all your other codeforpeople ;) I have learned
a lot by reading through your code and by googling "cat a.rb" ;)


Cheers-
-Ezra