You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by jo...@apache.org on 2021/12/23 14:59:10 UTC

[sling-org-apache-sling-event] 01/01: SLING-11025 use a dedicated threadpool for scheduled jobs

This is an automated email from the ASF dual-hosted git repository.

joerghoh pushed a commit to branch improvement/SLING-11025-use-dedicated-threadpool
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-event.git

commit 0f40a59849d4be68a415713d79a51b926bc3a052
Author: Joerg Hoh <jh...@adobe.com>
AuthorDate: Thu Dec 23 15:57:32 2021 +0100

    SLING-11025 use a dedicated threadpool for scheduled jobs
---
 pom.xml                                                             | 2 +-
 src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java  | 6 ++++--
 .../java/org/apache/sling/event/impl/jobs/queues/QueueManager.java  | 2 ++
 .../apache/sling/event/impl/jobs/scheduling/JobSchedulerImpl.java   | 5 ++++-
 .../java/org/apache/sling/event/impl/support/ScheduleInfoImpl.java  | 2 ++
 5 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/pom.xml b/pom.xml
index 0006a8e..65cf3f3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -174,7 +174,7 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.commons.scheduler</artifactId>
-            <version>2.4.0</version>
+            <version>2.5.0</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
diff --git a/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java b/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java
index 279d5ca..388b5cf 100644
--- a/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java
+++ b/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java
@@ -49,6 +49,7 @@ import org.apache.sling.event.impl.jobs.stats.StatisticsManager;
 import org.apache.sling.event.impl.jobs.tasks.CleanUpTask;
 import org.apache.sling.event.impl.support.Environment;
 import org.apache.sling.event.impl.support.ResourceHelper;
+import org.apache.sling.event.impl.support.ScheduleInfoImpl;
 import org.apache.sling.event.jobs.Job;
 import org.apache.sling.event.jobs.Job.JobState;
 import org.apache.sling.event.jobs.JobBuilder;
@@ -82,8 +83,9 @@ import org.slf4j.LoggerFactory;
     service={JobManager.class, EventHandler.class, Runnable.class},
     property = {
             Constants.SERVICE_VENDOR + "=The Apache Software Foundation",
-            "scheduler.period:Long=60",
-            "scheduler.concurrent:Boolean=false",
+            Scheduler.PROPERTY_SCHEDULER_PERIOD + ":Long=60",
+            Scheduler.PROPERTY_SCHEDULER_CONCURRENT + ":Boolean=false",
+            Scheduler.PROPERTY_SCHEDULER_THREAD_POOL + "=" + ScheduleInfoImpl.EVENTING_THREADPOOL_NAME,
             EventConstants.EVENT_TOPIC + "=" + ResourceHelper.BUNDLE_EVENT_STARTED,
             EventConstants.EVENT_TOPIC + "=" + ResourceHelper.BUNDLE_EVENT_UPDATED
     })
diff --git a/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueManager.java b/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueManager.java
index 4485463..5d919e0 100644
--- a/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueManager.java
+++ b/src/main/java/org/apache/sling/event/impl/jobs/queues/QueueManager.java
@@ -48,6 +48,7 @@ import org.apache.sling.event.impl.jobs.jmx.QueuesMBeanImpl;
 import org.apache.sling.event.impl.jobs.stats.StatisticsManager;
 import org.apache.sling.event.impl.support.Environment;
 import org.apache.sling.event.impl.support.ResourceHelper;
+import org.apache.sling.event.impl.support.ScheduleInfoImpl;
 import org.apache.sling.event.jobs.Job;
 import org.apache.sling.event.jobs.NotificationConstants;
 import org.apache.sling.event.jobs.Queue;
@@ -74,6 +75,7 @@ import org.slf4j.LoggerFactory;
            property={
                    Scheduler.PROPERTY_SCHEDULER_PERIOD + ":Long=60",
                    Scheduler.PROPERTY_SCHEDULER_CONCURRENT + ":Boolean=false",
+                   Scheduler.PROPERTY_SCHEDULER_THREAD_POOL + "=" + ScheduleInfoImpl.EVENTING_THREADPOOL_NAME,
                    EventConstants.EVENT_TOPIC + "=" + NotificationConstants.TOPIC_JOB_ADDED,
                    Constants.SERVICE_VENDOR + "=The Apache Software Foundation"
            })
diff --git a/src/main/java/org/apache/sling/event/impl/jobs/scheduling/JobSchedulerImpl.java b/src/main/java/org/apache/sling/event/impl/jobs/scheduling/JobSchedulerImpl.java
index 180dabe..4f7de0e 100644
--- a/src/main/java/org/apache/sling/event/impl/jobs/scheduling/JobSchedulerImpl.java
+++ b/src/main/java/org/apache/sling/event/impl/jobs/scheduling/JobSchedulerImpl.java
@@ -244,7 +244,10 @@ public class JobSchedulerImpl
                     final Map<String, Serializable> config = new HashMap<>();
                     config.put(PROPERTY_READ_JOB, info);
                     config.put(PROPERTY_SCHEDULE_INDEX, index);
-                    this.scheduler.schedule(this, options.name(name).config(config).canRunConcurrently(false));
+                    this.scheduler.schedule(this, options.name(name)
+                                                         .config(config)
+                                                         .canRunConcurrently(false)
+                                                         .threadPoolName(ScheduleInfoImpl.EVENTING_THREADPOOL_NAME));
                     index++;
                 }
             } else {
diff --git a/src/main/java/org/apache/sling/event/impl/support/ScheduleInfoImpl.java b/src/main/java/org/apache/sling/event/impl/support/ScheduleInfoImpl.java
index 70b45f9..bd613a9 100644
--- a/src/main/java/org/apache/sling/event/impl/support/ScheduleInfoImpl.java
+++ b/src/main/java/org/apache/sling/event/impl/support/ScheduleInfoImpl.java
@@ -61,6 +61,8 @@ public class ScheduleInfoImpl implements ScheduleInfo, Serializable {
     public static ScheduleInfoImpl DAILY(final int hour, final int minute) {
         return new ScheduleInfoImpl(ScheduleType.DAILY, -1, hour, minute, null, -1, null);
     }
+    
+    public static final String EVENTING_THREADPOOL_NAME = "org-apache-sling-event";
 
     private final ScheduleType scheduleType;