Package lumis.portal.processqueue
Overview
IProcessQueueManager
is the main entry
point for this API.
A task is defined by implementing IQueueTask
.
The task may then be scheduled for execution by calling
IProcessQueueManager.schedule(lumis.portal.processqueue.IQueueTask, lumis.portal.processqueue.QueueTaskScheduleConfig)
.
The task scheduling configuration is specified in a
QueueTaskScheduleConfig
object.
Tasks Order
Tasks are considered to be queued in the order corresponding to the order
of the calls to IProcessQueueManager.schedule(lumis.portal.processqueue.IQueueTask, lumis.portal.processqueue.QueueTaskScheduleConfig)
that included them.
If a task's
scheduled date-time
is configured, it will not execute before that time.
Tasks may run in parallel or in different order if they do not have dependencies between each other. Tasks that are not currently available for execution, due to being scheduled in the future, do not block other tasks.
Tasks Dependency
Tasks may have dependencies. These dependencies must be reflected in the
shared
and exclusive
locks they are associated with.
A task with a shared lock will not allow any newer task with the same value as an exclusive lock to execute before it. A task with an exclusive lock will not allow any newer task with the same value as either shared or exclusive lock to execute before it. Tasks that are not currently available for execution, due to being scheduled in the future, will not have their lock rules applied until they are available for execution.
Each task may have any number of shared or exclusive locks.
A task will automatically be associated with an exclusive lock with the value
of its process identifier
.
It may be used as a lock when scheduling other tasks to create a
dependency specific to that task process.
- Since:
- 6.1.0
- Version:
- $Revision: 14526 $ $Date: 2012-07-24 18:45:33 -0300 (Tue, 24 Jul 2012) $
-
Interface Summary Interface Description IProcessQueueManager Manager that allows a process to be executed asynchronously as well as see what is currently queued.IProcessQueueManagerSPI Manager that controls the consumption part of a queue.IQueueStatistics Interface that represents the overall state of the queue.IQueueTask Interface that represents a process/task to be executed by the queue processor.IQueueTaskProcess Interface that represents a queued process item. -
Class Summary Class Description AbstractQueueTask Default abstract implementation ofIQueueTask
for default behaviors.ProcessQueueInitializer Initializes the queue listening for the current server.QueueManager Manager that executes all interactions with the process queue.QueueTaskScheduleConfig Configuration for the scheduling of aIQueueTask
. -
Enum Summary Enum Description QueueTaskProcessStatus Represents the current status of a queue item.