Can you show your shutdown code? awaitTermination() should actually wait for shutdown to complete. In fact, its expected that you call it, even when you don't call shutdown():
Server s = .... s.start(); s.awaitTermination(); That blocks the current thread (usually main) while the server serves. On Wednesday, October 18, 2017 at 8:41:47 AM UTC-7, Fedor Korotkov wrote: > > Hey there, > > I've asked this question on StackOverflow > <https://stackoverflow.com/questions/46716024/graceful-shutdown-of-java-grpc-server-with-streams>, > > but haven't got a response so decided to duplicate it here. :-) > > I'm trying to add graceful shutdown for my GRPC service that has some > streaming APIs. Basically I want to wait for all GRPC calls to complete > before shutting down my application. Streaming calls can take up to several > minutes(big file uploads) and it seems current GRPC Java implementation is > not respecting such use case. > > My service is implemented in Java and uses GRPC 1.7.0. So I simply call > grpcServer.shutdown() which according to the docs should: "Initiates an > orderly shutdown in which preexisting calls continue but new calls are > rejected." After it I immediately call grpcServer.awaitTermination() to > block until my services in TERMINATED state. > > But I see that GRPC actually waits at most 5 seconds before sending > service in a TERMINATED state even though there are active streams. > > So is seems grpcServer.shutdown() is not doing what the docs says it does > and I wonder what should I do to support my use case. I think GRPC should > support it(seems like a pretty common use case). If not I will need to > track active streams manually which is doable not looks more like a hack. > > Best, > Fedor > -- You received this message because you are subscribed to the Google Groups "grpc.io" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/grpc-io. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/f1225a84-ede0-40fb-867b-828a0ba78483%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
