I have a gRPC streaming client, that has to handle server going up and
down, so I have a while loop, but sometimes it works fine, but other times
it takes 15 seconds to connect even on the same machine. Is it something
wrong with my code, or how can I debug? As you can see below I have debug
to print out channel state, and is mostly GRPC_CHANNEL_CONNECTING or
GRPC_CHANNEL_TRANSIENT_FAILURE , but still can take 15 seconds to connect.
I haven't found a pattern. Can someone tell me how I get it to connect
faster and more reliably? Thanks. Note I am using a deadline, so that I
can shut everything down at the end gracefully, and not have it block
forever.
...
channel = grpc::CreateChannel(asServerAddress, channel_creds);
while ((channel->GetState(true) != GRPC_CHANNEL_READY))
{
time_point deadline = std::chrono::system_clock::now() +
std::chrono::milliseconds(1000);
channel->WaitForConnected(deadline);
std::cout << "." << channel->GetState(false) << std::flush ;
}
std::cout << "Client Connected" << std::endl;
....
--
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/06cb24fd-f91f-42d4-b495-9c701b2457ae%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.