package example; /** * Perform a task and keep track of statistics. */ public interface PeriodicTaskMBean { /** * The estimated amount of milliseconds that the task will take, * used when the PeriodicTask has not been run yet so no historical data * is available. Default is 5000. */ public void setEstimatedAverageTime(long estimatedAverageTime); /** * The estimated amount of milliseconds that the task will take, * used when the PeriodicTask has not been run yet so no historical data * is available. */ public long getEstimatedAverageTime(); /** * True if the task is currently active. */ public boolean isActive(); /** * If currently active, how much longer will the task take? * * @return the estimate in milliseconds, 0 if not currently active */ public long getEstimatedTimeRemaining(); /** * The last time the task was started. * * @return the last active time, in milliseconds since the epoch */ public long getLastActiveTime(); /** * The number of times the task has been performed. */ public long getTotalActiveCount(); /** * The total amount of time the tasks have taken. * * @return the total active time, in milliseconds */ public long getTotalActiveTime(); /** * The average amount of time the task has taken. * If the task has never been run, then the estimatedAverageTime is returned. * * @return the average active time, in milliseconds */ public long getAverageActiveTime(); /** * Execute the task. Only one execution of the task can take place at a * time, if the task is currently active, this method returns immediately. */ public void run(); }