HashedWheelTimer & Delegation
Johnny Luong
johnny.luong at trustcommerce.com
Fri Nov 19 13:32:50 EST 2010
You could do it that way, or if there is really only one timer
throughout the entire program, you can make a wrapper Singleton around
your HashedWheelTimer and invoke a method to retrieve that Singleton
each and every time.
Hope that helps,
Johnny
On 11/18/2010 11:47 PM, kirtimaan.mg wrote:
> Hi Johnny,
>
>
>
> Thanks for reply. So then I need to extend TimerTask to share reference of
> my main class (in order to access methods defined in main class) ? Or
> HashedWheelTimer provides a way to avoid such referencing?
>
>
>
> Regards,
>
> Kirtimaan
>
>
>
>
>
>
>
>
>
> -------Original Message-------
>
>
>
> From: Johnny Luong-2 [via Netty Forums and Mailing Lists]
>
> Date: 11/19/10 01:15:48
>
> To: kirtimaan.mg
>
> Subject: Re: HashedWheelTimer & Delegation
>
>
>
> On 11/18/2010 02:22 AM, Kirtimaan (Gmail) wrote:
>
>
>
>> Hi,
>
>>
>
>> Is it possible to pass a class reference to HashedWheelTimer while setting
> a
>
>> newTimeout job.
>
>>
>
>> What I want achieve is using a single HashedWheelTimer object to execute a
>
>
>> method at fixed interval for each connected client. This method is part of
>
>
>> business logic and deals with user instance, so defined inside channel
>
>> handler (which is extending IdleStateTimer) and stateful.
>
>>
>
>> I defined a HashedWheelTimer already for idlestate detection in my custom
>
>> pipeline factory. I thought of defining another one in my main class as
>
>> static member (or even using the same existing instance) to schedule task
>
>> for each client based on condition. Task could be like after every 20
> second
>
>> send update to client A, after every 15 second send list of clients to
>
>> client B (means not a single task and depends on conditions and client
>
>> instance).
>
>>
>
>> One option could be that I extend TimerTask and pass & store my logic
> class
>
>> reference to that. Then add a time out task using HashedTimeoutTask
>
>> newTimeout(task, delay, unit) where task is object of CustomTimerTask type
>
>
>>
>
>> Using separate Timers doesn't sound like a good idea to me, as that's not
>
>> performance friendly option. Because then it will create a separate thread
>
>
>> to manage timer for each connected client. Other option which I thought
> for
>
>> a moment is using something like quartz-scheduler, but then it will make
>
>> stuff little complex for me.
>
>>
>
>> If its not a proper way to do what I am trying, could any one suggest a
>
>> better or proper way.
>
>>
>
>> Thanks,
>
>> Kirtimaan
>
>>
>
>>
>
>>
>
>> _______________________________________________
>
>> netty-users mailing list
>
>> [hidden email]
>
>> https://lists.jboss.org/mailman/listinfo/netty-users
>
>
>
> You should be able to share a single instance of the HashedWheelTimer
>
> for the purposes of scheduling new jobs to run at a fixed interval. If
>
> the job needs to be re-ran, you could add a new task at the end of the
>
> original task to accomplish the different scheduling considerations.
>
>
>
> Best,
>
> Johnny
>
> _______________________________________________
>
> netty-users mailing list
>
> [hidden email]
>
> https://lists.jboss.org/mailman/listinfo/netty-users
>
>
>
>
>
>
>
>
>
>
>
> View message @ http://netty-forums-and-mailing-lists.685743.n2.nabble
> com/HashedWheelTimer-Delegation-tp5751088p5753040.html
>
> To start a new topic under Netty User Group, email
> ml-node+685700-1479029216-303201 at n2.nabble.com
>
> To unsubscribe from Netty User Group, click here.
>
>
>
More information about the netty-users
mailing list