All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonj.timers.Timer Maven / Gradle / Ivy

The newest version!
/* Timer for Application Servers
 * Version 1.1
 * Licensed Materials - Property of BEA and IBM
 *
 * ? Copyright BEA Systems, Inc. and International Business Machines Corp 2003-2004. All rights reserved.
 */

package commonj.timers;

/**
 * A Timer is returned when a TimerListener
 * is scheduled using one of the TimerManager.schedule methods.
 * It allows retrieving information about the scheduled TimerListener and
 * allows cancelling it.

* * Timers are transient and not transactional and run inside the * JVM which created them. If a cluster-wide scheduled event is required * or it needs to be persistent, transactional or recoverable then a service such * as the EJB 2.1 Timer service should be used instead. * @see Timer * @see TimerListener * @since 1.0 * @version 1.1 */ public interface Timer { /** * This cancels the timer and all future TimerListener invocations and * may be called during the TimerListener.timerExpired * method.

* * CancelTimerListener.timerCancel events may be * called concurrently with any TimerListener.timerExpired * methods. Proper thread synchronization techiniques must be employed to * ensure consistency. * * Once a Timer is cancelled an application must not use * the Timer instance again.

* * @return true if this prevented the next execution * of this timer. False if this was already cancelled * or had already expired in the one shot case. * @since 1.0 * @see CancelTimerListener */ boolean cancel(); /** * Returns the application-supplied TimerListener associated * with this Timer. * @return The TimerListener associated with the timer. * @throws IllegalStateException if the TimerManager has been stopped. * @since 1.0 */ TimerListener getTimerListener(); /** * Returns the next absolute scheduled execution time in milliseconds.

* * If invoked while a TimerListener is running, * the return value is the scheduled execution time of * the current TimerListener execution.

* * This method is typically invoked from within a TimerListener's timerExpired * method, to determine whether the current execution of the task is sufficiently * timely to warrant performing the scheduled activity: *

     *    public void timerExpired(Timer t) {
     *        if (System.currentTimeMillis() - t.scheduledExecutionTime() >=
     *            MAX_TARDINESS)
     *                return;  // Too late; skip this execution.
     *        // Perform the task
     *    }
     *  
* * If the timer has been suspended, the time reflects the most recently-calculated * execution time prior to being suspended. * * @return the time in milliseconds at which the TimerListener is scheduled to run next. * @throws IllegalStateException if the TimerManager has been stopped. * @since 1.1 */ long getScheduledExecutionTime() throws IllegalStateException; /** * Return the period used to compute the time this timer will repeat. * A value of zero indicates that the timer is non-repeating. * @return the period in milliseconds between timer executions. * @since 1.0 */ long getPeriod(); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy