Errai 3.0.1-SNAPSHOT

org.jboss.errai.common.client.api.tasks
Interface TaskManager

All Known Implementing Classes:
ClientTaskManager, DefaultTaskManager

public interface TaskManager

A deferred, delayed, and periodic scheduling facility that has implementations which behave the same on the client or the server.

Note that on the client, timer behaviour is somewhat dependant on browser behaviour. For example, the HTML 4 specification mandates that delays or intervals less than 10ms are silently increased to 10ms; HTML 5 lowers this minimum to 4ms. In addition, browsers such as Firefox and Chrome enforce a minimum timeout to 1000ms for pages in inactive tabs.

Author:
Mike Brock, Jonathan Fuerth >, Christian Sadilek >

Method Summary
 void execute(Runnable task)
          Schedules the given task for immediate execution, either on the calling thread or on the first available worker thread.
 void requestStop()
          Prevents this task manager from beginning execution of all pending tasks.
 AsyncTask schedule(TimeUnit unit, int interval, Runnable task)
          Schedules the given task for execution at a later time.
 AsyncTask scheduleRepeating(TimeUnit unit, int interval, Runnable task)
          Schedules the given task for repeated execution at the given rate.
 

Method Detail

execute

void execute(Runnable task)
Schedules the given task for immediate execution, either on the calling thread or on the first available worker thread.

Parameters:
task - The task to execute.
Throws:
IllegalStateException - if requestStop() has been called on this TaskManager.

scheduleRepeating

AsyncTask scheduleRepeating(TimeUnit unit,
                            int interval,
                            Runnable task)
Schedules the given task for repeated execution at the given rate.

Efforts are made to ensure repeating tasks begin execution at fixed time intervals, rather than having a fixed delay between the end of execution and the beginning of the next. For example, when a task that takes about 2 seconds to run is scheduled for repeating execution every 10 seconds, it will begin execution every 10 seconds. There will be about 8 seconds between the end of one execution and the beginning of the next. However, if a task that takes 20 seconds is scheduled to run every 10 seconds, it will not be re-executed while it is still running. In this case (where a task takes longer to execute than the specified interval), the task will be rescheduled for immediate execution upon completion.

Parameters:
unit - Specifies the units that interval is interpreted in.
interval - Amount of time to wait before starting each successive execution.
task - The task to execute repeatedly.
Returns:
A handle on the repeating task that allows it to be canceled.
Throws:
IllegalStateException - if requestStop() has been called on this TaskManager.

schedule

AsyncTask schedule(TimeUnit unit,
                   int interval,
                   Runnable task)
Schedules the given task for execution at a later time.

Parameters:
unit - Specifies the units that interval is interpreted in.
interval - Amount of time to wait before starting each successive execution.
task - The task to execute repeatedly.
Returns:
A handle on the repeating task that allows it to be canceled.
Throws:
IllegalStateException - if requestStop() has been called on this TaskManager.

requestStop

void requestStop()
Prevents this task manager from beginning execution of all pending tasks. Does not terminate tasks that are currently executing.

Once this method has been called, any further method calls on this TaskManager will result in an IllegalStateException.


Errai 3.0.1-SNAPSHOT

Copyright © 2013-2014 JBoss, a division of Red Hat. All Rights Reserved.