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:09 UTC

[sling-org-apache-sling-event] branch improvement/SLING-11025-use-dedicated-threadpool created (now 0f40a59)

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

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


      at 0f40a59  SLING-11025 use a dedicated threadpool for scheduled jobs

This branch includes the following new commits:

     new 0f40a59  SLING-11025 use a dedicated threadpool for scheduled jobs

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


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

Posted by jo...@apache.org.
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;