Author: cziegeler Date: Thu Oct 16 15:57:47 2014 New Revision: 1632365 URL: http://svn.apache.org/r1632365 Log: SLING-4048 : Avoid keeping jobs in memory. (WiP)
Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueManager.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topics/TopicManager.java Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueManager.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueManager.java?rev=1632365&r1=1632364&r2=1632365&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueManager.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueManager.java Thu Oct 16 15:57:47 2014 @@ -250,7 +250,7 @@ public class QueueManager } /** - * @see org.apache.sling.event.jobs.JobManager#restart() + * Outdate all queues. */ public void restart() { // let's rename/close all queues and clear them @@ -263,17 +263,6 @@ public class QueueManager } } - private void stopProcessing() { - // let's rename/close all queues and clear them - synchronized ( queuesLock ) { - final List<AbstractJobQueue> queues = new ArrayList<AbstractJobQueue>(this.queues.values()); - for(final AbstractJobQueue queue : queues ) { - queue.clear(); - this.outdateQueue(queue); - } - } - } - /** * @see org.apache.sling.event.jobs.JobManager#getQueue(java.lang.String) */ Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topics/TopicManager.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topics/TopicManager.java?rev=1632365&r1=1632364&r2=1632365&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topics/TopicManager.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/topics/TopicManager.java Thu Oct 16 15:57:47 2014 @@ -62,6 +62,7 @@ import org.slf4j.LoggerFactory; * Topic manager * * TODO - Check syncing of take/update/stop. This might not be 100% correct yet. + * TODO - Block take() if inactive */ @Component(immediate=true) @Service(value=EventHandler.class) @@ -325,9 +326,15 @@ public class TopicManager implements Eve for(final Map.Entry<String, QueueJobCache> entry : this.updateConfiguration().entrySet()) { this.queueManager.start(this, entry.getValue().getQueueInfo()); } + } else { + this.queueManager.restart(); } } + /** + * Reschedule a job + * @param handler The job handler + */ public void reschedule(final JobHandler handler) { final QueueInfo info = this.queueConfigMgr.getQueueInfo(handler.getJob().getTopic()); final QueueJobCache cache = this.queueJobCaches.get(info.queueName);