花5秒钟关闭java grpc ManagedChannel

花5秒钟关闭java grpc ManagedChannel,java,grpc,Java,Grpc,我有一个客户端需要断开与一台服务器的连接,然后连接到另一台服务器。大约需要16秒。我还没有调试连接逻辑,但我可以看到通道关闭需要5秒钟。这是预期的行为,或者我应该在代码中寻找线程饥饿 LOG.debug("==============SHUTTING DOWN MANAGED CHANNEL"); long startTime=System.currentTimeMillis(); channel.shutdown().awaitTermination(20, SECONDS); long en

我有一个客户端需要断开与一台服务器的连接,然后连接到另一台服务器。大约需要16秒。我还没有调试连接逻辑,但我可以看到通道关闭需要5秒钟。这是预期的行为,或者我应该在代码中寻找线程饥饿

LOG.debug("==============SHUTTING DOWN MANAGED CHANNEL");
long startTime=System.currentTimeMillis();
channel.shutdown().awaitTermination(20, SECONDS);
long endTime=System.currentTimeMillis();
LOG.debug("Time to shutdown channel ms = {}",endTime-startTime);
LOG.debug("==============RETURN FROM SHUTTING DOWN MANAGED CHANNEL");
从日志中

2018-07-09 14:41:23,143 DEBUG [com.ticomgeo.ftc.client.FTCClient] (EE-ManagedExecutorService-singleThreaded-Thread-1) ==============SHUTTING DOWN MANAGED CHANNEL 
2018-07-09 14:41:28,151 INFO  [io.grpc.internal.ManagedChannelImpl] (grpc-default-worker-ELG-1-1) [io.grpc.internal.ManagedChannelImpl-1] Terminated 
2018-07-09 14:41:28,152 DEBUG [com.ticomgeo.ftc.client.FTCClient] (EE-ManagedExecutorService-singleThreaded-Thread-1) Time to shutdown channel ms = 5009 
2018-07-09 14:41:28,152 DEBUG [com.ticomgeo.ftc.client.FTCClient] (EE-ManagedExecutorService-singleThreaded-Thread-1) ==============RETURN FROM SHUTTING DOWN MANAGED CHANNEL 

有两种关机功能,关机和立即关机。你有没有可能接到阻止关机的电话?现在关机可能会更好

关闭

启动有序关机,其中先前存在的呼叫继续,但新呼叫被拒绝

立即关机

启动强制关机,拒绝先前存在的呼叫和新呼叫。尽管关闭过程是强制性的,但仍然不是瞬间的;此方法返回后,isTerminated()可能会立即返回false