|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.sling.event.impl.jobs.StatisticsImpl
org.apache.sling.event.impl.jobs.DefaultJobManager
@Services(value={@Service(value=java.lang.Runnable.class),@Service(value=JobManager.class),@Service(value=org.osgi.service.event.EventHandler.class)}) @Properties(value={@Property(name="scheduler.period",longValue=60L,propertyPrivate=true),@Property(name="scheduler.concurrent",boolValue=false,propertyPrivate=true),@Property(name="queue.priority",value="NORM",options={@PropertyOption(name="NORM",value="Norm"),@PropertyOption(name="MIN",value="Min"),@PropertyOption(name="MAX",value="Max")}),@Property(name="queue.retries",intValue=10),@Property(name="queue.retrydelay",longValue=2000L),@Property(name="queue.maxparallel",intValue=15),@Property(name="event.topics",propertyPrivate=true,value="org/apache/sling/event/notification/job/*")}) public class DefaultJobManager
An event handler for special job events. We schedule this event handler to run in the background and clean up obsolete queues.
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface org.apache.sling.event.jobs.JobManager |
---|
JobManager.QueryType |
Constructor Summary | |
---|---|
DefaultJobManager()
|
Method Summary | |
---|---|
protected void |
activate(Map<String,Object> props)
Activate this component. |
protected void |
deactivate()
Dectivate this component. |
org.osgi.service.event.Event |
findJob(String topic,
Map<String,Object> template)
Find a job - either scheduled or active. |
void |
forceRemoveJob(String jobId)
Cancel this job. |
InternalQueueConfiguration |
getMainQueueConfiguration()
|
Queue |
getQueue(String name)
Return a queue with a specific name (if running) |
Iterable<Queue> |
getQueues()
Return an iterator for all available queues. |
Statistics |
getStatistics()
Return our internal statistics object. |
Iterable<TopicStatistics> |
getTopicStatistics()
Return statistics information about job topics. |
void |
handleEvent(org.osgi.service.event.Event event)
|
boolean |
isJobProcessingEnabled()
Is job processing enabled? It is possible to completly turn off job processing. |
void |
notifyActiveJob(String key)
Job started |
void |
notifyAddJob(JobEvent job)
Add a job to all jobs. |
void |
notifyRemoveJob(String key)
Remove a job from all jobs. |
void |
process(JobEvent event)
Process a new job event. |
JobsIterator |
queryJobs(JobManager.QueryType type,
String topic,
Map<String,Object>... filterProps)
Return all jobs either running or scheduled. |
boolean |
removeJob(String jobId)
Cancel this job. |
void |
reset()
Clear all collected statistics and set the starting time to the current time. |
void |
restart()
Restart the job manager. |
void |
run()
This method is invoked periodically by the scheduler. |
protected void |
update(Map<String,Object> props)
Configure this component. |
Methods inherited from class org.apache.sling.event.impl.jobs.StatisticsImpl |
---|
add, addActive, cancelledJob, clearQueued, copyFrom, decQueued, failedJob, finishedJob, getAverageProcessingTime, getAverageWaitingTime, getLastActivatedJobTime, getLastFinishedJobTime, getNumberOfActiveJobs, getNumberOfCancelledJobs, getNumberOfFailedJobs, getNumberOfFinishedJobs, getNumberOfJobs, getNumberOfProcessedJobs, getNumberOfQueuedJobs, getStartTime, incQueued |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public DefaultJobManager()
Method Detail |
---|
@Activate protected void activate(Map<String,Object> props)
props
- Configuration properties@Modified protected void update(Map<String,Object> props)
props
- Configuration properties@Deactivate protected void deactivate()
public void process(JobEvent event)
event
- The job eventpublic void run()
run
in interface Runnable
Runnable.run()
public Statistics getStatistics()
getStatistics
in interface JobManager
JobManager.getStatistics()
public Queue getQueue(String name)
JobManager
getQueue
in interface JobManager
name
- The queue name
null
JobManager.getQueue(java.lang.String)
public Iterable<Queue> getQueues()
JobManager
getQueues
in interface JobManager
JobManager.getQueues()
public InternalQueueConfiguration getMainQueueConfiguration()
public void notifyAddJob(JobEvent job)
public void notifyRemoveJob(String key)
public void notifyActiveJob(String key)
public JobsIterator queryJobs(JobManager.QueryType type, String topic, Map<String,Object>... filterProps)
JobManager
queryJobs
in interface JobManager
type
- Required parameter for the type: either all jobs, only queued or only started can be returned.topic
- Topic can be used as a filter, if it is non-null, only jobs with this topic will be returned.filterProps
- A list of filter property maps. Each map acts like a template. The searched job
must match the template (AND query). By providing several maps, different filters
are possible (OR query).
JobManager.queryJobs(QueryType, java.lang.String, java.util.Map...)
public org.osgi.service.event.Event findJob(String topic, Map<String,Object> template)
JobManager
findJob
in interface JobManager
topic
- Topic is required.template
- The map acts like a template. The searched job
must match the template (AND query).
null
JobManager.findJob(java.lang.String, java.util.Map)
public boolean removeJob(String jobId)
JobManager
removeJob
in interface JobManager
jobId
- The unique identifer as found in the property JobUtil.JOB_ID
.
true
if the job could be cancelled or does not exist anymore.
false
otherwise.JobManager.removeJob(java.lang.String)
public void forceRemoveJob(String jobId)
JobManager
JobManager.removeJob(String)
with the exception that it waits
for a job to finish. The job will be removed when this method returns - however
this method blocks until the job is finished!
forceRemoveJob
in interface JobManager
jobId
- The unique identifer as found in the property JobUtil.JOB_ID
.JobManager.forceRemoveJob(java.lang.String)
public void reset()
Statistics
reset
in interface Statistics
reset
in class StatisticsImpl
Reset this statistics and all queues.
public Iterable<TopicStatistics> getTopicStatistics()
JobManager
getTopicStatistics
in interface JobManager
JobManager.getTopicStatistics()
public void handleEvent(org.osgi.service.event.Event event)
handleEvent
in interface org.osgi.service.event.EventHandler
EventHandler.handleEvent(org.osgi.service.event.Event)
public void restart()
JobManager
restart
in interface JobManager
JobManager.restart()
public boolean isJobProcessingEnabled()
JobManager
isJobProcessingEnabled
in interface JobManager
JobManager.isJobProcessingEnabled()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |