org.apache.sling.event.jobs.consumer
Interface JobConsumer

All Known Implementing Classes:
EventAdminBridge

public interface JobConsumer

A job consumer consumes a job. 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 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.

Since:
1.0

Nested Class Summary
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
           
 
Field Summary
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.
 
Method Summary
 JobConsumer.JobResult process(Job job)
          Execute the job.
 

Field Detail

PROPERTY_JOB_ASYNC_HANDLER

static final String PROPERTY_JOB_ASYNC_HANDLER
Job property containing an asynchronous handler.

See Also:
Constant Field Values

PROPERTY_TOPICS

static final String PROPERTY_TOPICS
Service registration property defining the jobs this consumer is able to process. The value is either a string or an array of strings.

See Also:
Constant Field Values
Method Detail

process

JobConsumer.JobResult process(Job job)
Execute the job. If the job has been processed successfully, 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.

Parameters:
job - The job
Returns:
The job result


Copyright © 2007-2013 The Apache Software Foundation. All Rights Reserved.