sockets - GRPC Python - 处理套接字错误的正确方法是什么?
问题描述
错误 :
Rendezvous of RPC that terminated with: status = StatusCode.UNAVAILABLE details = "Socket closed" debug_error_string = "{"created":"@1576780304.349820911","description":"Error received from peer ipv4:104.155.6.79:443","file":"src/core/lib/surface/call.cc","file_line":1046,"grpc_message":"Socket closed","grpc_status":14}
此错误的文档说:The service is currently unavailable. This is most likely a transient condition, which can be corrected by retrying with a backoff.
我发现可用的退避 GRPC ARGS是:
grpc.initial_reconnect_backoff_ms
grpc.max_reconnect_backoff_ms
grpc.min_reconnect_backoff_ms
默认情况下,这些 args 似乎具有这些值
#define GRPC_SUBCHANNEL_INITIAL_CONNECT_BACKOFF_SECONDS 1
#define GRPC_SUBCHANNEL_RECONNECT_MIN_TIMEOUT_SECONDS 20
#define GRPC_SUBCHANNEL_RECONNECT_MAX_BACKOFF_SECONDS 120
你怎么知道退避会重试多少次?它是否链接到“grpc.enable_retries”?因为文档提到了“透明重试”,我不确定它是否与退避选项有关。
处理代码 14 错误的正确方法是什么?
解决方案
推荐阅读
- python-3.x - 有没有一种简单的方法来压缩这段代码?
- c# - do-while 循环(计算器)net.framework 的问题
- node.js - 有没有办法使用 spotify 的 API 获取当前播放时间
- google-cloud-platform - 如何通过 API 获取所有可用镜像的信息以创建 vm 实例
- javascript - 在javascript中将纯文本转换为超链接
- cassandra - 在不停机的情况下添加新的 Cassandra 节点
- laravel - Laravel - 模型类型的多态关系
- c# - 如何在c#winforms中取消停靠和分离停靠在另一个窗体中的窗体
- haskell - GHC.PackageDb.readPackageDb:不合适的类型(没有足够的字节)
- java - 我想做一个物理计算器(运动学和弹丸),但我不知道如何构造它。我应该怎么办?