diff --git a/platform-grpc-service-framework/src/main/java/org/hypertrace/core/serviceframework/grpc/GrpcPlatformServerDefinition.java b/platform-grpc-service-framework/src/main/java/org/hypertrace/core/serviceframework/grpc/GrpcPlatformServerDefinition.java index 37e8946..9e3489a 100644 --- a/platform-grpc-service-framework/src/main/java/org/hypertrace/core/serviceframework/grpc/GrpcPlatformServerDefinition.java +++ b/platform-grpc-service-framework/src/main/java/org/hypertrace/core/serviceframework/grpc/GrpcPlatformServerDefinition.java @@ -4,6 +4,7 @@ import java.time.Duration; import java.util.Collection; import java.util.List; +import java.util.concurrent.Executor; import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.Builder; @@ -20,6 +21,7 @@ public class GrpcPlatformServerDefinition { @Builder.Default int maxRstPerMinute = 500; @Builder.Default Duration maxConnectionAge = Duration.ZERO; @Builder.Default Duration maxConnectionAgeGrace = Duration.ZERO; + @Builder.Default Executor executor = null; @Singular Collection serviceFactories; @Singular List serverInterceptors; } diff --git a/platform-grpc-service-framework/src/main/java/org/hypertrace/core/serviceframework/grpc/GrpcPlatformServiceContainer.java b/platform-grpc-service-framework/src/main/java/org/hypertrace/core/serviceframework/grpc/GrpcPlatformServiceContainer.java index 435ea0f..ad2e789 100644 --- a/platform-grpc-service-framework/src/main/java/org/hypertrace/core/serviceframework/grpc/GrpcPlatformServiceContainer.java +++ b/platform-grpc-service-framework/src/main/java/org/hypertrace/core/serviceframework/grpc/GrpcPlatformServiceContainer.java @@ -302,6 +302,12 @@ private ServerBuilder initializeBuilder(GrpcPlatformServerDefinition serverDe Status.Code.OK)); serverDefinition.getServerInterceptors().forEach(builder::intercept); + + if (serverDefinition.getExecutor() != null) { + log.info("Server [{}] using custom executor", serverDefinition.getName()); + builder.executor(serverDefinition.getExecutor()); + } + return builder; }