You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2014/10/22 13:32:24 UTC

svn commit: r1633599 - in /sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues: AbstractJobQueue.java QueueJobCache.java

Author: cziegeler
Date: Wed Oct 22 11:32:24 2014
New Revision: 1633599

URL: http://svn.apache.org/r1633599
Log:
SLING-4048 : Avoid keeping jobs in memory. Readd full cache update

Modified:
    sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/AbstractJobQueue.java
    sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueJobCache.java

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/AbstractJobQueue.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/AbstractJobQueue.java?rev=1633599&r1=1633598&r2=1633599&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/AbstractJobQueue.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/AbstractJobQueue.java Wed Oct 22 11:32:24 2014
@@ -339,10 +339,12 @@ public abstract class AbstractJobQueue
         logger.debug("Taking new job for {}", queueName);
         JobImpl result = null;
 
+        boolean doFull = false;
+
         while ( result == null && !this.isOutdated() && this.running ) {
             this.isWaitingForNextJob = true;
 
-            result = this.cache.getNextJob();
+            result = this.cache.getNextJob(doFull);
             if ( result == null && !this.isOutdated() && this.running ) {
                 // block
                 synchronized ( nextJobLock ) {
@@ -350,6 +352,7 @@ public abstract class AbstractJobQueue
                         try {
                             nextJobLock.wait(20000);
                             isWaitingForNextJob = false;
+                            doFull = true;
                         } catch ( final InterruptedException ignore ) {
                             Thread.currentThread().interrupt();
                         }

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueJobCache.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueJobCache.java?rev=1633599&r1=1633598&r2=1633599&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueJobCache.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueJobCache.java Wed Oct 22 11:32:24 2014
@@ -112,7 +112,7 @@ public class QueueJobCache {
      * {@link #reschedule(JobImpl)} and {@link #handleNewTopics(String)}
      * can be called concurrently.
      */
-    public JobImpl getNextJob() {
+    public JobImpl getNextJob(final boolean doFull) {
         JobImpl result = null;
 
         synchronized ( this.cache ) {
@@ -122,6 +122,9 @@ public class QueueJobCache {
                     checkingTopics.addAll(this.topicsWithNewJobs);
                     this.topicsWithNewJobs.clear();
                 }
+                if ( doFull ) {
+                    checkingTopics.addAll(this.topics);
+                }
                 if ( !checkingTopics.isEmpty() ) {
                     this.loadJobs(checkingTopics);
                 }