@ConsumerType public interface JobExecutor
PROPERTY_TOPICSservice registration property. The value of this property defines which topics an executor 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 executor or consumer 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 executor decides to process the job asynchronously, the processing must finish within the current lifetime of the job executor. If the executor (or the instance of the executor) dies, the job processing will mark this processing as failed and reschedule.
|Modifier and Type||Field and Description|
Service registration property defining the jobs this executor is able to process.
JobExecutionResult process(Job job, JobExecutionContext context)
JobExecutionContext.result().succeeded(). If the job has not been processed completely, but might be rescheduled "failed" should be returned. This result can be generated by calling
JobExecutionContext.result().failed(). If the job processing failed and should not be rescheduled, "cancelled" should be returned. This result can be generated by calling
JobExecutionContext.result().cancelled(). If the executor decides to process the job asynchronously it should return
nulland notify the job manager by using the
JobExecutionContext.asyncProcessingFinished(JobExecutionResult)method of the processing result. If the processing fails with throwing an exception/throwable, the process will not be rescheduled and treated like the method would have returned a "cancelled" result. Additional information can be added to the result by using the builder pattern available from
job- The job
context- The execution context.
nullfor asynchronous processing.
Copyright © 2014 The Apache Software Foundation. All rights reserved.