This is an automated email from the ASF dual-hosted git repository. cschneider pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-distribution-journal.git
The following commit(s) were added to refs/heads/master by this push: new a2c3f9c SLING-12288 - Allow configuration of timeouts for SubscriberReady check (#139) a2c3f9c is described below commit a2c3f9cff15d6292642bd95e8237afc83ab6fa69 Author: Christian Schneider <cschn...@adobe.com> AuthorDate: Tue Apr 16 15:08:37 2024 +0200 SLING-12288 - Allow configuration of timeouts for SubscriberReady check (#139) --- .../journal/impl/subscriber/DistributionSubscriber.java | 7 +------ .../journal/impl/subscriber/SubscriberConfiguration.java | 6 ++++++ .../distribution/journal/impl/subscriber/SubscriberReady.java | 3 --- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/DistributionSubscriber.java b/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/DistributionSubscriber.java index 170eeb0..f9fc84f 100644 --- a/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/DistributionSubscriber.java +++ b/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/DistributionSubscriber.java @@ -169,7 +169,6 @@ public class DistributionSubscriber { requireNonNull(precondition); requireNonNull(bookKeeperFactory); - long idleMillies = getLong(properties, SubscriberReady.DEFAULT_IDLE_TIME_MILLIS); if (config.editable()) { commandPoller = new CommandPoller(messagingProvider, topics, subSlingId, subAgentName, delay::signal); } @@ -177,7 +176,7 @@ public class DistributionSubscriber { if (config.subscriberIdleCheck()) { AtomicBoolean readyHolder = subscriberReadyStore.getReadyHolder(subAgentName); - idleCheck = new SubscriberReady(subAgentName, idleMillies, SubscriberReady.DEFAULT_FORCE_IDLE_MILLIS, readyHolder, System::currentTimeMillis); + idleCheck = new SubscriberReady(subAgentName, config.idleMillies(), config.forceReadyMillies(), readyHolder, System::currentTimeMillis); idleReadyCheck = new SubscriberIdleCheck(context, idleCheck); } else { idleCheck = new NoopIdle(); @@ -218,10 +217,6 @@ public class DistributionSubscriber { queueNames, config.subscriberIdleCheck()); } - private long getLong(Map<String, Object> properties, long defaultValue) { - return Long.parseLong(properties.getOrDefault("idleMillies", Long.valueOf(defaultValue)).toString()); - } - public static String escapeTopicName(URI messagingUri, String topicName) { return String.format("%s%s_%s", messagingUri.getHost(), diff --git a/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberConfiguration.java b/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberConfiguration.java index fc2aa48..ca0fb65 100644 --- a/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberConfiguration.java +++ b/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberConfiguration.java @@ -58,4 +58,10 @@ public @interface SubscriberConfiguration { @AttributeDefinition(name = "ContentPackageExtractor.overwritePrimaryTypesOfFolders", description = "The flag determines whether the primary node types of folders should be overwritten during content package extraction, with a default value of 'true'.") boolean contentPackageExtractorOverwritePrimaryTypesOfFolders() default true; + + @AttributeDefinition(description = "Number of ms being idle before reporting ready.") + int idleMillies() default 10 * 1000; + + @AttributeDefinition(description = "Number of ms to force subscriber reporting idle.") + int forceReadyMillies() default 300 * 1000; } diff --git a/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberReady.java b/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberReady.java index 0e8edd7..bb376da 100644 --- a/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberReady.java +++ b/src/main/java/org/apache/sling/distribution/journal/impl/subscriber/SubscriberReady.java @@ -20,7 +20,6 @@ package org.apache.sling.distribution.journal.impl.subscriber; import static java.util.concurrent.TimeUnit.MILLISECONDS; import static java.util.concurrent.TimeUnit.MINUTES; -import static java.util.concurrent.TimeUnit.SECONDS; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; @@ -43,8 +42,6 @@ import org.slf4j.LoggerFactory; * After becoming ready once, the check stays ready. */ public class SubscriberReady implements IdleCheck { - public static final long DEFAULT_IDLE_TIME_MILLIS = SECONDS.toMillis(10); - public static final long DEFAULT_FORCE_IDLE_MILLIS = MINUTES.toMillis(5); public static final long ACCEPTABLE_AGE_DIFF_MS = MINUTES.toMillis(2); public static final int MAX_RETRIES = 10;