@ConsumerType
public interface JobConsumer
JobExecutor
should be implemented instead.
A job consumer registers itself with the PROPERTY_TOPICS
service registration
property. The value of this property defines which topics a consumer is able to process.
Each string value of this property is either a job topic or a topic category ending
with "/*" which means all topics in this category.
For example, the value "org/apache/sling/jobs/*" matches the topics
"org/apache/sling/jobs/a" and "org/apache/sling/jobs/b" but neither
"org/apache/sling/jobs" nor "org/apache/sling/jobs/subcategory/a"
If there is more than one job consumer or executor registered for a job topic, the selection is as
follows:
- If there is a single consumer registering for the exact topic, this one is used
- If there is more than a single consumer registering for the exact topic, the one
with the highest service ranking is used. If the ranking is equal, the one with
the lowest service ID is used.
- If there is a single consumer registered for the category, it is used
- If there is more than a single consumer registered for the category, the service
with the highest service ranking is used. If the ranking is equal, the one with
the lowest service ID is used.
If the consumer decides to process the job asynchronously, the processing must finish
within the current lifetime of the job consumer. If the consumer (or the instance
of the consumer) dies, the job processing will mark this processing as failed and
reschedule.Modifier and Type | Interface and Description |
---|---|
static interface |
JobConsumer.AsyncHandler
If the consumer decides to process the job asynchronously, this handler
interface can be used to notify finished processing.
|
static class |
JobConsumer.JobResult |
Modifier and Type | Field and Description |
---|---|
static String |
PROPERTY_JOB_ASYNC_HANDLER
Job property containing an asynchronous handler.
|
static String |
PROPERTY_TOPICS
Service registration property defining the jobs this consumer is able to process.
|
Modifier and Type | Method and Description |
---|---|
JobConsumer.JobResult |
process(Job job)
Execute the job.
|
static final String PROPERTY_JOB_ASYNC_HANDLER
static final String PROPERTY_TOPICS
JobConsumer.JobResult process(Job job)
JobResult.OK
should be returned.
If the job has not been processed completely, but might be rescheduled JobResult.FAILED
should be returned.
If the job processing failed and should not be rescheduled, JobResult.CANCEL
should
be returned.
If the consumer decides to process the job asynchronously it should return JobResult.ASYNC
and notify the job manager by using the JobConsumer.AsyncHandler
interface.
If the processing fails with throwing an exception/throwable, the process will not be rescheduled
and treated like the method would have returned JobResult.CANCEL
.job
- The jobCopyright © 2014 The Apache Software Foundation. All rights reserved.