Joe Van Dyk
4/25/2005 5:27:00 PM
On 4/25/05, Robert Klemme <bob.news@gmx.net> wrote:
>
> "Brian Schröder" <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öder <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.