Having a way to override the consumerTaskFactory as part of LeaseManagementConfig (#1441)
This commit is contained in:
parent
8deebe4bda
commit
c9563ab585
2 changed files with 5 additions and 29 deletions
|
|
@ -88,7 +88,6 @@ import software.amazon.kinesis.leases.exceptions.DependencyException;
|
||||||
import software.amazon.kinesis.leases.exceptions.InvalidStateException;
|
import software.amazon.kinesis.leases.exceptions.InvalidStateException;
|
||||||
import software.amazon.kinesis.leases.exceptions.ProvisionedThroughputException;
|
import software.amazon.kinesis.leases.exceptions.ProvisionedThroughputException;
|
||||||
import software.amazon.kinesis.lifecycle.ConsumerTaskFactory;
|
import software.amazon.kinesis.lifecycle.ConsumerTaskFactory;
|
||||||
import software.amazon.kinesis.lifecycle.KinesisConsumerTaskFactory;
|
|
||||||
import software.amazon.kinesis.lifecycle.LifecycleConfig;
|
import software.amazon.kinesis.lifecycle.LifecycleConfig;
|
||||||
import software.amazon.kinesis.lifecycle.ShardConsumer;
|
import software.amazon.kinesis.lifecycle.ShardConsumer;
|
||||||
import software.amazon.kinesis.lifecycle.ShardConsumerArgument;
|
import software.amazon.kinesis.lifecycle.ShardConsumerArgument;
|
||||||
|
|
@ -267,33 +266,6 @@ public class Scheduler implements Runnable {
|
||||||
@NonNull final ProcessorConfig processorConfig,
|
@NonNull final ProcessorConfig processorConfig,
|
||||||
@NonNull final RetrievalConfig retrievalConfig,
|
@NonNull final RetrievalConfig retrievalConfig,
|
||||||
@NonNull final DiagnosticEventFactory diagnosticEventFactory) {
|
@NonNull final DiagnosticEventFactory diagnosticEventFactory) {
|
||||||
this(
|
|
||||||
checkpointConfig,
|
|
||||||
coordinatorConfig,
|
|
||||||
leaseManagementConfig,
|
|
||||||
lifecycleConfig,
|
|
||||||
metricsConfig,
|
|
||||||
processorConfig,
|
|
||||||
retrievalConfig,
|
|
||||||
diagnosticEventFactory,
|
|
||||||
new KinesisConsumerTaskFactory());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Customers do not currently have the ability to customize the DiagnosticEventFactory, but this visibility
|
|
||||||
* is desired for testing. This constructor is only used for testing to provide a mock DiagnosticEventFactory.
|
|
||||||
*/
|
|
||||||
@VisibleForTesting
|
|
||||||
protected Scheduler(
|
|
||||||
@NonNull final CheckpointConfig checkpointConfig,
|
|
||||||
@NonNull final CoordinatorConfig coordinatorConfig,
|
|
||||||
@NonNull final LeaseManagementConfig leaseManagementConfig,
|
|
||||||
@NonNull final LifecycleConfig lifecycleConfig,
|
|
||||||
@NonNull final MetricsConfig metricsConfig,
|
|
||||||
@NonNull final ProcessorConfig processorConfig,
|
|
||||||
@NonNull final RetrievalConfig retrievalConfig,
|
|
||||||
@NonNull final DiagnosticEventFactory diagnosticEventFactory,
|
|
||||||
@NonNull final ConsumerTaskFactory taskFactory) {
|
|
||||||
this.checkpointConfig = checkpointConfig;
|
this.checkpointConfig = checkpointConfig;
|
||||||
this.coordinatorConfig = coordinatorConfig;
|
this.coordinatorConfig = coordinatorConfig;
|
||||||
this.leaseManagementConfig = leaseManagementConfig;
|
this.leaseManagementConfig = leaseManagementConfig;
|
||||||
|
|
@ -401,7 +373,7 @@ public class Scheduler implements Runnable {
|
||||||
this.schemaRegistryDecoder = this.retrievalConfig.glueSchemaRegistryDeserializer() == null
|
this.schemaRegistryDecoder = this.retrievalConfig.glueSchemaRegistryDeserializer() == null
|
||||||
? null
|
? null
|
||||||
: new SchemaRegistryDecoder(this.retrievalConfig.glueSchemaRegistryDeserializer());
|
: new SchemaRegistryDecoder(this.retrievalConfig.glueSchemaRegistryDeserializer());
|
||||||
this.taskFactory = taskFactory;
|
this.taskFactory = leaseManagementConfig().consumerTaskFactory();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,8 @@ import software.amazon.kinesis.common.StreamConfig;
|
||||||
import software.amazon.kinesis.leases.dynamodb.DynamoDBLeaseManagementFactory;
|
import software.amazon.kinesis.leases.dynamodb.DynamoDBLeaseManagementFactory;
|
||||||
import software.amazon.kinesis.leases.dynamodb.DynamoDBLeaseSerializer;
|
import software.amazon.kinesis.leases.dynamodb.DynamoDBLeaseSerializer;
|
||||||
import software.amazon.kinesis.leases.dynamodb.TableCreatorCallback;
|
import software.amazon.kinesis.leases.dynamodb.TableCreatorCallback;
|
||||||
|
import software.amazon.kinesis.lifecycle.ConsumerTaskFactory;
|
||||||
|
import software.amazon.kinesis.lifecycle.KinesisConsumerTaskFactory;
|
||||||
import software.amazon.kinesis.metrics.MetricsFactory;
|
import software.amazon.kinesis.metrics.MetricsFactory;
|
||||||
import software.amazon.kinesis.metrics.NullMetricsFactory;
|
import software.amazon.kinesis.metrics.NullMetricsFactory;
|
||||||
import software.amazon.kinesis.worker.metric.WorkerMetric;
|
import software.amazon.kinesis.worker.metric.WorkerMetric;
|
||||||
|
|
@ -215,6 +217,8 @@ public class LeaseManagementConfig {
|
||||||
|
|
||||||
private BillingMode billingMode = BillingMode.PAY_PER_REQUEST;
|
private BillingMode billingMode = BillingMode.PAY_PER_REQUEST;
|
||||||
|
|
||||||
|
private ConsumerTaskFactory consumerTaskFactory = new KinesisConsumerTaskFactory();
|
||||||
|
|
||||||
private WorkerUtilizationAwareAssignmentConfig workerUtilizationAwareAssignmentConfig =
|
private WorkerUtilizationAwareAssignmentConfig workerUtilizationAwareAssignmentConfig =
|
||||||
new WorkerUtilizationAwareAssignmentConfig();
|
new WorkerUtilizationAwareAssignmentConfig();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue