Class JobQueueImpl
- java.lang.Object
-
- org.apache.sling.event.impl.jobs.queues.JobQueueImpl
-
- All Implemented Interfaces:
org.apache.sling.event.jobs.Queue
public class JobQueueImpl extends Object implements org.apache.sling.event.jobs.Queue
The job blocking queue extends the blocking queue by some functionality for the job event handling.
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedJobQueueImpl(String name, InternalQueueConfiguration config, QueueServices services, QueueJobCache cache, org.apache.sling.event.impl.jobs.queues.OutdatedJobQueueInfo outdatedQueue)Create a new queue.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Close this queue.static JobQueueImplcreateQueue(String name, InternalQueueConfiguration config, QueueServices services, Set<String> topics, Set<String> haltedTopicsBackRef, org.apache.sling.event.impl.jobs.queues.OutdatedJobQueueInfo outdatedQueueInfo)Create a new queue.InternalQueueConfigurationgetConfiguration()Return the queue configurationStringgetName()Get the name of the job queue.ObjectgetState(String key)StringgetStateInfo()org.apache.sling.event.jobs.StatisticsgetStatistics()booleanisSuspended()voidmaintain()Periodic maintenancevoidoutdate()Outdate this queue.voidremoveAll()voidresume()voidstartJobs()Start the job queue.voidstopAllJobs()Stop all currently running jobs in this queuebooleanstopJob(JobImpl job)voidsuspend()booleantryToClose()Check if the queue can be closedvoidwakeUpQueue(Set<String> topics)Inform the queue about new job for the given topics.
-
-
-
Constructor Detail
-
JobQueueImpl
protected JobQueueImpl(String name, InternalQueueConfiguration config, QueueServices services, QueueJobCache cache, org.apache.sling.event.impl.jobs.queues.OutdatedJobQueueInfo outdatedQueue)
Create a new queue.- Parameters:
name- The queue nameconfig- The queue configurationservices- The queue servicescache- The job cacheoutdatedQueue-
-
-
Method Detail
-
createQueue
public static JobQueueImpl createQueue(String name, InternalQueueConfiguration config, QueueServices services, Set<String> topics, Set<String> haltedTopicsBackRef, org.apache.sling.event.impl.jobs.queues.OutdatedJobQueueInfo outdatedQueueInfo)
Create a new queue.- Parameters:
name- The queue nameconfig- The queue configurationservices- The queue servicestopics- The topics handled by this queueoutdatedQueueInfo-haltedTopicsBackRef- reference to pass newly halted topics back- Returns:
JobQueueImplif there are jobs to process,nullotherwise.
-
getConfiguration
public InternalQueueConfiguration getConfiguration()
Return the queue configuration- Specified by:
getConfigurationin interfaceorg.apache.sling.event.jobs.Queue
-
getName
public String getName()
Get the name of the job queue.- Specified by:
getNamein interfaceorg.apache.sling.event.jobs.Queue
-
getStatistics
public org.apache.sling.event.jobs.Statistics getStatistics()
- Specified by:
getStatisticsin interfaceorg.apache.sling.event.jobs.Queue- See Also:
Queue.getStatistics()
-
startJobs
public void startJobs()
Start the job queue. This method might be called concurrently, therefore we use a guard
-
outdate
public void outdate()
Outdate this queue.
-
tryToClose
public boolean tryToClose()
Check if the queue can be closed
-
close
public void close()
Close this queue.
-
maintain
public void maintain()
Periodic maintenance
-
wakeUpQueue
public void wakeUpQueue(Set<String> topics)
Inform the queue about new job for the given topics.- Parameters:
topics- the new topics
-
resume
public void resume()
- Specified by:
resumein interfaceorg.apache.sling.event.jobs.Queue- See Also:
Queue.resume()
-
suspend
public void suspend()
- Specified by:
suspendin interfaceorg.apache.sling.event.jobs.Queue- See Also:
Queue.suspend()
-
isSuspended
public boolean isSuspended()
- Specified by:
isSuspendedin interfaceorg.apache.sling.event.jobs.Queue- See Also:
Queue.isSuspended()
-
removeAll
public void removeAll()
- Specified by:
removeAllin interfaceorg.apache.sling.event.jobs.Queue- See Also:
Queue.removeAll()
-
getState
public Object getState(String key)
- Specified by:
getStatein interfaceorg.apache.sling.event.jobs.Queue- See Also:
Queue.getState(java.lang.String)
-
getStateInfo
public String getStateInfo()
- Specified by:
getStateInfoin interfaceorg.apache.sling.event.jobs.Queue- See Also:
Queue.getStateInfo()
-
stopJob
public boolean stopJob(JobImpl job)
-
stopAllJobs
public void stopAllJobs()
Stop all currently running jobs in this queue
-
-