Hi,
probably AsyncAperiodicWork [1] should do what you need
Vojta

[1] http://javadoc.jenkins-ci.org/hudson/model/AsyncAperiodicWork.html

On Tuesday 25 September 2012 10:00:57 Anthony Dahanne wrote:
> Hello all,
> I'm currently creating a plugin that would need to perform an action every
> N seconds.
> I would like the user to set the N seconds interval in the Configure System
> page; so I added a field to get this value.
> The action is launched from an AsyncPeriodicWork subclass, and I wrote the
> following, to re launch the action every N seconds :
> 
>     @Override
>     public long getRecurrencePeriod() {
>         //TODO : this method is not called regularly, need to find another
> scheduling mechanism
>         if(DESCRIPTOR.interval != 0){
>             return 1000 * DESCRIPTOR.interval;
>         } else {
>             return 60 * 1000;
>         }
>     }
> 
> in the javadoc, it is written (and this is accurate) that
> getRecurrencePeriod is only called once :
> "    *
>      * Hudson calls this method once to set up a recurring timer, instead of
> * calling this each time after the previous execution completed. So this
> class cannot be
>      * used to implement a non-regular recurring timer.
>      *
>      * IOW, the method should always return the same value.
> "
> so what I'm doing is not working.(since the I would like the user to change
> this value whenever he wants)
> Could you please tell me if there is a preferred way to achieve what I'm
> doing (a non regular timer)? or do I need to go implementing my custom
> Timer/TimerTask ?
> Thanks,
> Anthony

Reply via email to