Author: cziegeler
Date: Mon Apr 22 16:04:49 2013
New Revision: 1470600

URL: http://svn.apache.org/r1470600
Log:
Handle retry delay

Modified:
    
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/deprecated/EventAdminBridge.java
    
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/AbstractParallelJobQueue.java
    
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/OrderedJobQueue.java
    
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/Job.java
    
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobUtil.java

Modified: 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/deprecated/EventAdminBridge.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/deprecated/EventAdminBridge.java?rev=1470600&r1=1470599&r2=1470600&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/deprecated/EventAdminBridge.java
 (original)
+++ 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/deprecated/EventAdminBridge.java
 Mon Apr 22 16:04:49 2013
@@ -128,7 +128,6 @@ public class EventAdminBridge
         JobUtil.PROPERTY_JOB_PARALLEL,
         JobUtil.PROPERTY_JOB_RUN_LOCAL,
         JobUtil.PROPERTY_JOB_RETRIES,
-        JobUtil.PROPERTY_JOB_RETRY_DELAY,
         JobUtil.PROPERTY_JOB_QUEUE_NAME,
         JobUtil.PROPERTY_JOB_QUEUE_ORDERED,
         JobUtil.PROPERTY_JOB_PRIORITY

Modified: 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/AbstractParallelJobQueue.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/AbstractParallelJobQueue.java?rev=1470600&r1=1470599&r2=1470600&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/AbstractParallelJobQueue.java
 (original)
+++ 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/AbstractParallelJobQueue.java
 Mon Apr 22 16:04:49 2013
@@ -24,6 +24,7 @@ import org.apache.sling.commons.schedule
 import org.apache.sling.event.impl.jobs.JobConsumerManager;
 import org.apache.sling.event.impl.jobs.JobHandler;
 import org.apache.sling.event.impl.jobs.config.InternalQueueConfiguration;
+import org.apache.sling.event.jobs.JobUtil;
 import org.osgi.service.event.EventAdmin;
 
 /**
@@ -117,7 +118,10 @@ public abstract class AbstractParallelJo
     protected JobHandler reschedule(final JobHandler info) {
         // we just sleep for the delay time - if none, we continue and retry
         // this job again
-        final long delay = this.configuration.getRetryDelayInMs();
+        long delay = this.configuration.getRetryDelayInMs();
+        if ( info.getJob().getProperty(JobUtil.PROPERTY_JOB_RETRY_DELAY) != 
null ) {
+            delay = 
info.getJob().getProperty(JobUtil.PROPERTY_JOB_RETRY_DELAY, Long.class);
+        }
         if ( delay > 0 ) {
             final Date fireDate = new Date();
             fireDate.setTime(System.currentTimeMillis() + delay);

Modified: 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/OrderedJobQueue.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/OrderedJobQueue.java?rev=1470600&r1=1470599&r2=1470600&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/OrderedJobQueue.java
 (original)
+++ 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/OrderedJobQueue.java
 Mon Apr 22 16:04:49 2013
@@ -27,6 +27,7 @@ import java.util.concurrent.LinkedBlocki
 import org.apache.sling.event.impl.jobs.JobConsumerManager;
 import org.apache.sling.event.impl.jobs.JobHandler;
 import org.apache.sling.event.impl.jobs.config.InternalQueueConfiguration;
+import org.apache.sling.event.jobs.JobUtil;
 import org.osgi.service.event.EventAdmin;
 
 /**
@@ -141,7 +142,10 @@ public final class OrderedJobQueue exten
     protected JobHandler reschedule(final JobHandler info) {
         // we just sleep for the delay time - if none, we continue and retry
         // this job again
-        final long delay = this.configuration.getRetryDelayInMs();
+        long delay = this.configuration.getRetryDelayInMs();
+        if ( info.getJob().getProperty(JobUtil.PROPERTY_JOB_RETRY_DELAY) != 
null ) {
+            delay = 
info.getJob().getProperty(JobUtil.PROPERTY_JOB_RETRY_DELAY, Long.class);
+        }
         if ( delay > 0 ) {
             synchronized ( this.sleepLock ) {
                 this.sleepLock.sleepingSince = System.currentTimeMillis();

Modified: 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/Job.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/Job.java?rev=1470600&r1=1470599&r2=1470600&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/Job.java
 (original)
+++ 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/Job.java
 Mon Apr 22 16:04:49 2013
@@ -103,6 +103,14 @@ public interface Job {
     String PROPERTY_JOB_STARTED_TIME = "event.job.started.time";
 
     /**
+     * The property to set a retry delay. Value is of type Long and specifies 
milliseconds.
+     * This property can be used to override the retry delay from the queue 
configuration.
+     * But it should only be used very rarely as the queue configuration 
should be the one
+     * in charge.
+     */
+    String PROPERTY_JOB_RETRY_DELAY = "event.job.retrydelay";
+
+    /**
      * The job topic.
      * @return The job topic
      */

Modified: 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobUtil.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobUtil.java?rev=1470600&r1=1470599&r2=1470600&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobUtil.java
 (original)
+++ 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobUtil.java
 Mon Apr 22 16:04:49 2013
@@ -87,8 +87,8 @@ public abstract class JobUtil {
     public static final String PROPERTY_JOB_RETRIES = "event.job.retries";
 
     /**
-     * This property is not supported anymore
-     * @deprecated
+     * The property to set a retry delay. Value is of type Long and specifies 
milliseconds.
+     * @deprecated - Use the new {@link Job} interface instead.
      */
     @Deprecated
     public static final String PROPERTY_JOB_RETRY_DELAY = 
"event.job.retrydelay";


Reply via email to