I wasn't sure about how the interactions between the threads would
work. I'll try the above and see how it works.
···
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?
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.
Also, if I remember correctly, ruby threads may be blocked for some
time by some large io activities.
hope to help,
Brian
···
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.
"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.
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.
"Brian Schröder" <ruby.brian@gmail.com> schrieb im Newsbeitrag
news:7993c66305042510075b914ce7@mail.gmail.com...
>> > > 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.
···
On 4/25/05, Robert Klemme <bob.news@gmx.net> wrote:
> 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: