wicket.util.thread
Class Task

java.lang.Object
  extended by wicket.util.thread.Task

public final class Task
extends java.lang.Object

Runs a block of code periodically. The Task can be started at a given time in the future and can be a daemon. The block of code will be passed a Log object each time it is run through its ICode interface.

If the code block takes longer than the period to run, the next task invocation will occur immediately. In this case, tasks will not occur at precise multiples of the period. For example, if you run a task every 30 seconds, and the first run takes 40 seconds but the second takes 20 seconds, your task will be invoked at 0 seconds, 40 seconds and 70 seconds (40 seconds + 30 seconds), which is not an even multiple of 30 seconds.

In general, this is a simple task class designed for polling activities. If you need precise guarantees, you probably should be using a different task class.

Author:
Jonathan Locke

Constructor Summary
Task(java.lang.String name)
          Constructor.
 
Method Summary
protected  org.apache.commons.logging.Log getLog()
          Gets the log.
 void run(Duration frequency, ICode code)
          Runs this task at the given frequency.
 void setDaemon(boolean daemon)
          Set daemon or not.
 void setLog(org.apache.commons.logging.Log log)
          Set log for user code to log to when task runs.
 void setStartTime(Time startTime)
          Sets start time for this task.
 void stop()
          Will stop the task as soon as it does have that opportunity
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Task

public Task(java.lang.String name)
Constructor.

Parameters:
name - The name of this task
Method Detail

run

public final void run(Duration frequency,
                      ICode code)
Runs this task at the given frequency. You may only call this method if the task has not yet been started. If the task is already running, an IllegalStateException will be thrown.

Parameters:
frequency - The frequency at which to run the code
code - The code to run
Throws:
java.lang.IllegalStateException - Thrown if task is already running

setDaemon

public void setDaemon(boolean daemon)
Set daemon or not. For obvious reasons, this value can only be set before the task starts running. If you attempt to set this value after the task starts running, an IllegalStateException will be thrown.

Parameters:
daemon - True if this task's thread should be a daemon
Throws:
java.lang.IllegalStateException - Thrown if task is already running

setLog

public void setLog(org.apache.commons.logging.Log log)
Set log for user code to log to when task runs.

Parameters:
log - The log

setStartTime

public void setStartTime(Time startTime)
Sets start time for this task. You cannot set the start time for a task which is already running. If you attempt to, an IllegalStateException will be thrown.

Parameters:
startTime - The time this task should start running
Throws:
java.lang.IllegalStateException - Thrown if task is already running

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object
See Also:
Object.toString()

getLog

protected org.apache.commons.logging.Log getLog()
Gets the log.

Returns:
the log

stop

public void stop()
Will stop the task as soon as it does have that opportunity



Copyright © 2004-2007 Wicket developers. All Rights Reserved.