diff --git a/docs/src/main/asciidoc/spring-cloud-stream.adoc b/docs/src/main/asciidoc/spring-cloud-stream.adoc index 647c36975..a1ab746cb 100644 --- a/docs/src/main/asciidoc/spring-cloud-stream.adoc +++ b/docs/src/main/asciidoc/spring-cloud-stream.adoc @@ -550,6 +550,21 @@ Maximum messages for each polling event of the default poller. + Default: 1L. +cron:: +Cron expression value for the Cron Trigger. ++ +Default: none. + +initialDelay:: +Initial delay for periodic triggers. ++ +Default: 0. + +timeUnit:: +The TimeUnit to apply to delay values. ++ +Default: MILLISECONDS. + For example `--spring.cloud.stream.poller.fixed-delay=2000` sets the poller interval to poll every two seconds. ===== Sending arbitrary data to an output (e.g. Foreign event-driven sources) diff --git a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/config/DefaultPollerProperties.java b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/config/DefaultPollerProperties.java index f343954cd..f9a4f297a 100644 --- a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/config/DefaultPollerProperties.java +++ b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/config/DefaultPollerProperties.java @@ -16,6 +16,8 @@ package org.springframework.cloud.stream.config; +import java.util.concurrent.TimeUnit; + import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.integration.scheduling.PollerMetadata; import org.springframework.scheduling.support.CronTrigger; @@ -49,13 +51,18 @@ public class DefaultPollerProperties { */ private int initialDelay = 0; + /** + * The TimeUnit to apply to delay values. + */ + private TimeUnit timeUnit = TimeUnit.MILLISECONDS; + public PollerMetadata getPollerMetadata() { PollerMetadata pollerMetadata = new PollerMetadata(); if (cron != null) { pollerMetadata.setTrigger(new CronTrigger(cron)); } else { - final PeriodicTrigger periodicTrigger = new PeriodicTrigger(this.fixedDelay); + final PeriodicTrigger periodicTrigger = new PeriodicTrigger(this.fixedDelay, this.timeUnit); periodicTrigger.setInitialDelay(initialDelay); pollerMetadata.setTrigger(periodicTrigger); } @@ -95,4 +102,12 @@ public class DefaultPollerProperties { public void setInitialDelay(int initialDelay) { this.initialDelay = initialDelay; } + + public TimeUnit getTimeUnit() { + return timeUnit; + } + + public void setTimeUnit(TimeUnit timeUnit) { + this.timeUnit = timeUnit; + } }