Я использую gRPC для вызова службы в клиенте. После того, как я настроил канал:
channel = grpc.insecure_channel('server_url:service_port')
stub = Client.Stub(channel)
Работает неплохо. Однако, если в течение 5 минут клиент не отправляет запрос, следующий запрос получит сообщение об ошибке:
grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with (StatusCode.UNKNOWN, Stream removed)>






К сожалению, функция повторных попыток gRPC при разрыве канала все еще продолжается и еще не полностью доступна. Одна вещь, которую вы могли бы сделать в качестве обходного пути, - это написать перехватчик, который автоматически повторит попытку, если он обнаружит такую ошибку.
@JieHu Похоже, ошибка в самом gRPC github.com/grpc/grpc/issues/9779github.com/grpc/grpc/issues/15623
Да, и он все еще там, поэтому мне нужно использовать heatbeat keepAlive, чтобы поддерживать соединение gRPC.
Я пробовал этот метод, если тайм-аут соединения, затем повторите попытку, пока не добьется успеха, но не работает. можешь показать мне пример? Tnx