Package com.redwood.scheduler.api.model
Interface QueueProvider
-
- All Superinterfaces:
Association
,BusinessKeyObject
,Readable
,SchedulerEntity
,SchedulerEntityComp
public interface QueueProvider extends Association, BusinessKeyObject, Readable
Process Servers that serve a queue. Jobs assigned to a queue execute on on one of the process servers associated with the queue. Which process server is used depends on the load on the process servers, and is decided at runtime. The association between queue and process server has static limits (like ExecutionSize).
-
-
Field Summary
Fields Modifier and Type Field Description static String
OBJECT_TYPE
String that will be returned fromSchedulerEntity.getObjectType()
for "QueueProvider" objects.static String
SEC_RANK_ALL
This rank is made of the following privileges:static String
SEC_RANK_NONE
This rank has no privileges assigned to it.static QueryObjectType<QueueProvider>
TYPE
Type that can be used inSchedulerSession.executeObjectQuery(QueryObjectType, String, Object...)
.-
Fields inherited from interface com.redwood.scheduler.api.model.SchedulerEntity
ACTION_AUDIT, ACTION_EXPORT, ACTION_READ, BEHAVIOR_DEPRECATED, BEHAVIOR_NONE, BEHAVIOR_SYSTEM
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Long
getExecutionSize()
Get the value for ExecutionSize.Long
getHoldLevel()
Get the value for HoldLevel.DateTimeZone
getNextWindowChange()
Get the value for NextWindowChange.ProcessServer
getProcessServer()
Get the ProcessServer.Queue
getQueue()
Get the Queue.TimeZone
getQueueProviderTimeZone()
Get the QueueProviderTimeZone.QueueStatus
getStatus()
Get the value for Status.TimeWindow
getTimeWindow()
Get the TimeWindow.void
hold()
Hold the QueueProvider, such that further Jobs are not allocated from this Queue to this ProcessServer.boolean
isHeld()
Get the value for Held.boolean
isInclusive()
Get the value for Inclusive.boolean
isOpen()
Get the value for Open.void
release()
Release the QueueProvider, such that further Jobs can be allocated to this ProcessServer from this Queue.void
setExecutionSize(Long newExecutionSize)
Set the value for ExecutionSize.void
setHeld(boolean newHeld)
Set the value for Held.void
setHoldLevel(Long newHoldLevel)
Set the value for HoldLevel.void
setInclusive(boolean newInclusive)
Set the value for Inclusive.void
setQueueProviderTimeZone(TimeZone newQueueProviderTimeZone)
Set the value for QueueProviderTimeZone.void
setTimeWindow(TimeWindow newTimeWindow)
Set the value for TimeWindow.-
Methods inherited from interface com.redwood.scheduler.api.model.BusinessKeyObject
getBusinessKey
-
Methods inherited from interface com.redwood.scheduler.api.model.SchedulerEntity
canPerform, createSubjectObjectPrivilegeGrant, deleteObject, getAuditTrail, getAuditTrailSize, getBehavior, getEffectiveBehavior, getErrorNameEN, getErrorNameKey, getLLPVersion, getLOV, getLOVSupport, getObjectType, getParentSchedulerEntities, getRuntime, getSubjectObjectPrivilegeGrantBySubject, getSubjectObjectPrivilegeGrants, getUniqueId, getUrl, getUrl, isCreated, isDeletable, isDeleted, isModifiable, isModified, isSelectVersioned, processRelatedObjects, processRelatedObjects, processRelatedObjects, refreshObject, resetObject, resetObject, resetValuesToDefault, selectForRead
-
-
-
-
Field Detail
-
OBJECT_TYPE
static final String OBJECT_TYPE
String that will be returned fromSchedulerEntity.getObjectType()
for "QueueProvider" objects.- See Also:
- Constant Field Values
-
TYPE
static final QueryObjectType<QueueProvider> TYPE
Type that can be used inSchedulerSession.executeObjectQuery(QueryObjectType, String, Object...)
.
-
SEC_RANK_NONE
static final String SEC_RANK_NONE
This rank has no privileges assigned to it.- See Also:
- Constant Field Values
-
SEC_RANK_ALL
static final String SEC_RANK_ALL
This rank is made of the following privileges:- See Also:
- Constant Field Values
-
-
Method Detail
-
getExecutionSize
Long getExecutionSize()
Get the value for ExecutionSize. (ExecutionSize is the maximum number of concurrent executing jobs allowed in the queue. IfIncludeWaitingJobs
istrue
this includes jobs in Executing and Idle JobStatusStates. IfIncludeWaitingJobs
isfalse
then this only includes the jobs in the Executing JobStatusState.)- Returns:
- the field
- Throws:
com.redwood.scheduler.api.exception.ObjectNotAttachedToSessionException
- This will be thrown if this method is called while the object is not attached to a session.
-
isHeld
boolean isHeld()
Get the value for Held. (Is the queue provider on hold?)- Returns:
- the field
- Throws:
com.redwood.scheduler.api.exception.ObjectNotAttachedToSessionException
- This will be thrown if this method is called while the object is not attached to a session.
-
getHoldLevel
Long getHoldLevel()
Get the value for HoldLevel. (Jobs having a priority below the specified number will not be started on this process server for this queue)- Returns:
- the field
- Throws:
com.redwood.scheduler.api.exception.ObjectNotAttachedToSessionException
- This will be thrown if this method is called while the object is not attached to a session.
-
isInclusive
boolean isInclusive()
Get the value for Inclusive. (Does the execution size include waiting jobs?)- Returns:
- the field
- Throws:
com.redwood.scheduler.api.exception.ObjectNotAttachedToSessionException
- This will be thrown if this method is called while the object is not attached to a session.
-
getNextWindowChange
DateTimeZone getNextWindowChange()
Get the value for NextWindowChange. (The next date on which the time window will open or close the queue again)- Returns:
- the field
- Throws:
com.redwood.scheduler.api.exception.ObjectNotAttachedToSessionException
- This will be thrown if this method is called while the object is not attached to a session.
-
isOpen
boolean isOpen()
Get the value for Open. (Is the queue provider open?)- Returns:
- the field
- Throws:
com.redwood.scheduler.api.exception.ObjectNotAttachedToSessionException
- This will be thrown if this method is called while the object is not attached to a session.
-
getStatus
QueueStatus getStatus()
Get the value for Status. (Return the status of the queue provider) This value is mandatory, and therefore will not benull
if this object has been retrieved from the database.- Returns:
- the field
- Throws:
com.redwood.scheduler.api.exception.ObjectNotAttachedToSessionException
- This will be thrown if this method is called while the object is not attached to a session.
-
setExecutionSize
void setExecutionSize(Long newExecutionSize)
Set the value for ExecutionSize. (ExecutionSize is the maximum number of concurrent executing jobs allowed in the queue. IfIncludeWaitingJobs
istrue
this includes jobs in Executing and Idle JobStatusStates. IfIncludeWaitingJobs
isfalse
then this only includes the jobs in the Executing JobStatusState.) This value is optional.- Parameters:
newExecutionSize
- the new value for ExecutionSize.- Throws:
com.redwood.scheduler.api.exception.ObjectNotAttachedToSessionException
- This will be thrown if this method is called while the object is not attached to a session.
-
setHeld
void setHeld(boolean newHeld)
Set the value for Held. (Is the queue provider on hold?)- Parameters:
newHeld
- the new value for Held.- Throws:
com.redwood.scheduler.api.exception.ObjectNotAttachedToSessionException
- This will be thrown if this method is called while the object is not attached to a session.
-
setHoldLevel
void setHoldLevel(Long newHoldLevel)
Set the value for HoldLevel. (Jobs having a priority below the specified number will not be started on this process server for this queue) This value is optional.- Parameters:
newHoldLevel
- the new value for HoldLevel.- Throws:
com.redwood.scheduler.api.exception.ObjectNotAttachedToSessionException
- This will be thrown if this method is called while the object is not attached to a session.
-
setInclusive
void setInclusive(boolean newInclusive)
Set the value for Inclusive. (Does the execution size include waiting jobs?)- Parameters:
newInclusive
- the new value for Inclusive.- Throws:
com.redwood.scheduler.api.exception.ObjectNotAttachedToSessionException
- This will be thrown if this method is called while the object is not attached to a session.
-
hold
void hold()
Hold the QueueProvider, such that further Jobs are not allocated from this Queue to this ProcessServer.
-
release
void release()
Release the QueueProvider, such that further Jobs can be allocated to this ProcessServer from this Queue.
-
getProcessServer
ProcessServer getProcessServer()
Get the ProcessServer.- Returns:
- ProcessServer
- Throws:
com.redwood.scheduler.api.exception.ObjectDeletedException
- If this method is called when the object has been marked for deletion.com.redwood.scheduler.api.exception.ObjectNotAttachedToSessionException
- If this method is called when the object has been removed from it's session.
-
getQueue
Queue getQueue()
Get the Queue.- Returns:
- Queue
- Throws:
com.redwood.scheduler.api.exception.ObjectDeletedException
- If this method is called when the object has been marked for deletion.com.redwood.scheduler.api.exception.ObjectNotAttachedToSessionException
- If this method is called when the object has been removed from it's session.
-
getTimeWindow
TimeWindow getTimeWindow()
Get the TimeWindow.- Returns:
- TimeWindow
- Throws:
com.redwood.scheduler.api.exception.ObjectDeletedException
- If this method is called when the object has been marked for deletion.com.redwood.scheduler.api.exception.ObjectNotAttachedToSessionException
- If this method is called when the object has been removed from it's session.
-
getQueueProviderTimeZone
TimeZone getQueueProviderTimeZone()
Get the QueueProviderTimeZone.- Returns:
- QueueProviderTimeZone
- Throws:
com.redwood.scheduler.api.exception.ObjectDeletedException
- If this method is called when the object has been marked for deletion.com.redwood.scheduler.api.exception.ObjectNotAttachedToSessionException
- If this method is called when the object has been removed from it's session.
-
setTimeWindow
void setTimeWindow(TimeWindow newTimeWindow)
Set the value for TimeWindow. This value is optional.- Parameters:
newTimeWindow
- is the object to set TimeWindow to. The time window when this queue is open for this process server.
-
setQueueProviderTimeZone
void setQueueProviderTimeZone(TimeZone newQueueProviderTimeZone)
Set the value for QueueProviderTimeZone. This value is optional.- Parameters:
newQueueProviderTimeZone
- is the object to set QueueProviderTimeZone to. The timezone to use for QueueProvider TimeWindow calculations.
-
-