Runs a block of code periodically. A
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
@since 1.2.6