У меня есть сервер grpc и клиентское решение grpc, работающие как 2 отдельных сервиса. Если клиент приходит первым, он пытается подключиться к серверу grpc, а если сервер не работает, он должен подождать. Я думал, что WaitForConnected
определено для этой цели. Похоже, он не работает правильно.
Мой код:
if (!channel->WaitForConnected(gpr_time_add(
gpr_now(GPR_CLOCK_REALTIME),
gpr_time_from_seconds(600, GPR_TIMESPAN)))) {
//Log error and return
}
grpc_connectivity_state state = channel->GetState(true);
// cout << state always return 2 (GRPC_CHANNEL_READY) even if server is not up.
Версия Grpc: 1.6.x