Annotation Type ScheduleWithFixedDelay
-
@Documented @Retention(RUNTIME) @Target(TYPE) public @interface ScheduleWithFixedDelay
Schedules the method to run with fixed delay, automatically.For example, you want a method to do something every minute:
@ScheduleWithFixedDelay(delay = 1, unit = TimeUnit.MINUTES) public class Bucket implements Runnable, Closeable { @Override void run() { // do some routine job } @Override void close() { // close operations } }Execution will be started as soon as you make an instance of the class, and will be stopped when you call
close():Bucket bucket = new Bucket(); // some time later bucket.close();
In order to be executed the class should implement either
RunnableorCallable. In order to be closed and stopped, your the class should implementCloseableand itsclose()method should be explicitly called at the moment you want it to stop.NOTE: It should be pointed out that in order to ensure that there are no duplicate executions, you can only schedule an execution once between all equal objects (i.e. instances that are equal as per
Object.equals(Object))). Invoking the same method multiple times, without stopping it first, will result in anIllegalStateExceptionbeing thrown.- Since:
- 0.7.16
- See Also:
- http://aspects.jcabi.com/
-
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description intawaitHow long to wait for the task to finish after shutdown in await units.TimeUnitawaitUnitTime units of await time.intdelayDelay, in time units.intshutdownAttemptsHow many times to do a forceful shutdown after await time.intthreadsTotal number of fixed threads.TimeUnitunitTime units of delay.booleanverboseBe less verbose.
-