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