GH-222: Expose KCL gracefulShutdownTimeout

Fixes: #222
Issue link: https://github.com/spring-cloud/spring-cloud-stream-binder-aws-kinesis/issues/222
This commit is contained in:
Artem Bilan
2024-09-26 12:06:18 -04:00
parent 0fbad2908c
commit 4efb48d1a5
3 changed files with 19 additions and 0 deletions

View File

@@ -304,6 +304,11 @@ The KCL idle between requests in polling mode.
+
Default: 1500L
gracefulShutdownTimeout::
The KCL graceful shutdown timeout in milliseconds.
+
Default: 0 - regular shutdown process
Starting with version `4.0.4` (basically since `spring-integration-aws-3.0.8`), the `KclMessageDrivenChannelAdapter` can be customized programmatically for the `ConfigsBuilder` parts.
For example, to set a custom value for the `LeaseManagementConfig.maxLeasesForWorker` property, the `ConsumerEndpointCustomizer<KclMessageDrivenChannelAdapter>` bean has to be provided:

View File

@@ -417,6 +417,7 @@ public class KinesisMessageChannelBinder extends
adapter.setLeaseTableName(kinesisConsumerProperties.getLeaseTableName());
adapter.setPollingMaxRecords(kinesisConsumerProperties.getPollingMaxRecords());
adapter.setPollingIdleTime(kinesisConsumerProperties.getPollingIdleTime());
adapter.setGracefulShutdownTimeout(kinesisConsumerProperties.getGracefulShutdownTimeout());
if (properties.getExtension().isEmbedHeaders()) {
adapter.setEmbeddedHeadersMapper(this.embeddedHeadersMapper);
}

View File

@@ -88,6 +88,11 @@ public class KinesisConsumerProperties {
*/
private long pollingIdleTime = 1500L;
/**
* The KCL graceful shutdown timeout in milliseconds.
*/
private long gracefulShutdownTimeout;
private boolean embedHeaders;
/**
@@ -231,4 +236,12 @@ public class KinesisConsumerProperties {
this.pollingIdleTime = pollingIdleTime;
}
public long getGracefulShutdownTimeout() {
return this.gracefulShutdownTimeout;
}
public void setGracefulShutdownTimeout(long gracefulShutdownTimeout) {
this.gracefulShutdownTimeout = gracefulShutdownTimeout;
}
}