Sha256: 7db1f269ff8dca0efc9a121e76874bba12b1244441fd0219839b63c56fa51ac9

Contents?: true

Size: 1.25 KB

Versions: 2

Compression:

Stored size: 1.25 KB

Contents

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. 

typical usage:

  obj = AnyClass::new

  slave = Slave::new obj 

  p slave.object                  # handle on drb object
  p slave.uri                     # uri of the drb object
  p slave.socket                  # unix domain socket path for drb object
  p slave.psname                  # title shown in ps/top

other usage: 

set the pulse_rate used for the Heartbeat

  slave = Slave::new MyClass::new, 'pulse_rate' => 10

same

  Slave::pulse_rate = 10
  slave = Slave::new MyClass::new

same

  ENV['SLAVE_PULSE_RATE'] = 10
  slave = Slave::new MyClass::new

slaves may be configured via the environment, the Slave class, or via the ctor
for object itself.  attributes which may be configured include

* socket_creation_attempts
* pulse_rate 
* psname
* debug 

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
slave-0.0.1 README
slave-0.0.0 README