This package specifies API for scheduling background tasks, or jobs. Jobs can be scheduled for immediate execution, or for execution after a specified delay. Once scheduled, jobs can be queried, canceled, or suspended. Rules can be attached to jobs to indicate when they can run, and whether they can run simultaneously with other jobs. This package also includes a generic locking facility that includes support for detecting and responding to deadlock.
Interface Summary Interface Description IJobChangeEventAn event describing a change to the state of a job. IJobChangeListenerCallback interface for clients interested in being notified when jobs change state. IJobFunctionThis is a functional interface representation of
Job, suitable for use in lambda expressions.
IJobManagerThe job manager provides facilities for scheduling, querying, and maintaining jobs and locks. IJobStatusRepresents status relating to the execution of jobs. ILockA lock is used to control access to an exclusive resource. ISchedulingRuleScheduling rules are used by jobs to indicate when they need exclusive access to a resource.
Class Summary Class Description JobJobs are units of runnable work that can be scheduled to be run with the job manager. JobChangeAdapterThis adapter class provides default implementations for the methods described by the
JobGroupJobGroups support throttling, join, cancel, combined progress and error reporting on a group of jobs. LockListenerA lock listener is notified whenever a thread is about to wait on a lock, and when a thread is about to release a lock. MultiRuleA MultiRule is a compound scheduling rule that represents a fixed group of child scheduling rules. ProgressProviderThe progress provider supplies the job manager with progress monitors for running jobs.