复制步骤
我还发现,如果服务器在重新启动之前长时间处于停止状态,则第5步中的调用也会返回“通道处于TRANSIENT_FAILURE状态”。
示例代码:https://github.com/whs/grpc-repro (从requirements.txt安装,然后运行main.py)
预期结果
所有通话都应该成功。
已通过Python grpcio == 1.19.0服务器/客户端和go-grpc服务器进行了测试。我尝试设置grpc.max_connection_age_grace_ms,grpc.max_connection_age_ms,grpc.max_connection_idle_ms,grpc.keepalive_time_ms,grpc.keepalive_permit_without_calls,但它们似乎无济于事。
答案 0 :(得分:1)
该问题与https://groups.google.com/forum/#!msg/grpc-io/199V_iF0NMw/NahHz_vMBwAJ重复。
您想要的功能可能是“ wait_for_ready”。如果是TRANSIENT_FAILURE(服务器暂时不可用),它将自动等待通道再次变为READY,而不会失败。 Read more关于等待准备。