@Override public void configure(ServerBuilder<?> serverBuilder){ serverBuilder.executor(command -> { System.out.println(CUSTOM_EXECUTOR_MESSAGE); command.run(); } ); } };
@Override public void configure(ServerBuilder<?> serverBuilder){ serverBuilder.executor(command -> { System.out.println(CUSTOM_EXECUTOR_MESSAGE); command.run(); } ); } };
@SuppressWarnings("rawtypes") public void init() throws Exception{ if(!init){ synchronized (this) { if(!init){ registry = new MotanHandlerRegistry(); serviceDefinetions = new HashMap<URL, ServerServiceDefinition>(); io.grpc.ServerBuilder builder = ServerBuilder.forPort(port); builder.fallbackHandlerRegistry(registry); if(executor != null){ builder.executor(executor); } if(builder instanceof NettyServerBuilder){ httpHandler = new NettyHttpRequestHandler(executor); ((NettyServerBuilder)builder).protocolNegotiator(new HttpProtocolNegotiator(httpHandler)); } server = builder.build(); server.start(); init = true; } } } }
@Override public void configure(ServerBuilder<?> serverBuilder) { serverBuilder.executor(executorService); } }
private void registerGrpcServerExecutor(final Injector serviceInjector) { final Key<ExecutorServiceFactory> executorServiceBindingKey = Key.get(ExecutorServiceFactory.class); Optional.ofNullable(serviceInjector.getExistingBinding(executorServiceBindingKey)) .map(binding -> serviceInjector.getInstance(binding.getKey())) .map(executorServiceFactory -> { final ExecutorServiceFactory.Key grpcExecutorKey = new ExecutorServiceFactory.Key.Builder(webServerModuleBuilder.getGrpcExternalServerBuilder().getClass()).build(); return executorServiceFactory.createCachedThreadPool(grpcExecutorKey); }) .ifPresent(executor -> { webServerModuleBuilder.getGrpcExternalServerBuilder().executor(executor); webServerModuleBuilder.getGrpcInternalServerBuilder().ifPresent(grpcInternalServerBuilder -> grpcInternalServerBuilder.executor(executor)); }); } }
static void startServer(String endPoint) throws IOException { ServerBuilder<?> builder = NettyServerBuilder.forAddress(parseEndpoint(endPoint)); Executor executor = MoreExecutors.directExecutor(); builder.executor(executor); final Server server = builder.addService(new FakeOcAgentTraceServiceGrpcImpl()).build(); server.start(); logger.info("Server started at " + endPoint); Runtime.getRuntime() .addShutdownHook( new Thread() { @Override public void run() { server.shutdown(); } }); try { server.awaitTermination(); } catch (InterruptedException e) { logger.warning("Thread interrupted: " + e.getMessage()); Thread.currentThread().interrupt(); } }
/** * Starts the RPC server. * * @throws IOException if a server cannot be successfully initialized */ @Override public void start() throws IOException { if (useInProcessServer) { final ServerBuilder builder = InProcessServerBuilder.forName(address.toString()); server = builder.addService(this) .executor(grpcExecutor) .build() .start(); } else { server = NettyServerBuilder.forAddress(new InetSocketAddress(address.getHostname(), address.getPort())) .workerEventLoopGroup(eventLoopGroup) .addService(this) .executor(grpcExecutor) .build() .start(); } // Use stderr here since the logger may have been reset by its JVM shutdown hook. Runtime.getRuntime().addShutdownHook(new Thread(this::shutdown)); }