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;