On 4/25/05, Robert Klemme <bob.news / gmx.net> wrote:
> 
> "Brian Schröäer" <ruby.brian / gmail.com> schrieb im Newsbeitrag
> news:7993c66305042510075b914ce7 / mail.gmail.com...
> > On 25/04/05, Joe Van Dyk <joevandyk / gmail.com> wrote:
> >> On 4/25/05, Brian Schröäer <ruby.brian / gmail.com> wrote:
> >> > On 25/04/05, Joe Van Dyk <joevandyk / gmail.com> wrote:
> >> > > Every second, a function in the class that's being made available via
> >> > > DRb should be called automatically.  How would I do that?
> >> > >
> >> > > So I'd have
> >> > >
> >> > > class Server
> >> > >  def update
> >> > >    # stuff gets updated
> >> > >  end
> >> > > end
> >> > >
> >> > > server = DRb.start_service....
> >> > >
> >> > > server.update() # <== somehow ran every second
> >> >
> >> > How about:
> >> >
> >> > update_thread = Thread.new(server) do | s |
> >> >   loop do
> >> >     sleep 1
> >> >     s.update
> >> >   end
> >> > end
> >> >
> >> > >
> >> > > DRb.thread.join
> >> > >
> >> > >
> >> >
> >> > or is there anything special with drb that prohibits this?
> >> >
> >>
> >> I wasn't sure about how the interactions between the threads would
> >> work.  I'll try the above and see how it works.
> >>
> >>
> >
> > One difference from your whish is, that this calls the function with a
> > sleeptime of approximately one second, or sometimes more, and not
> > every second. Calling it every second is more difficult.

That's not an issue.  It seems to work great.  Thanks!

> >
> > Also, if I remember correctly, ruby threads may be blocked for some
> > time by some large io activities.
> >
> > hope to help,
> 
> Another issue worth mentioning is proper synchronization.  But since we
> don't know anything about the nature of the classes and tasks we could only
> speculate.  Just in case the OP needs it: have a look at Mutex and Monitor.
> 

Syncing's also not an issue.  But I'll keep that in mind.  Thanks.