gpt4 book ai didi

grpc - 将 retryPolicy 与 python GRPC 客户端一起使用

转载 作者:行者123 更新时间:2023-12-04 11:29:01 24 4
gpt4 key购买 nike

我真的很努力地尝试使用 GRPC 文档( https://github.com/grpc/proposal/blob/master/A6-client-retries.md#retry-policy )的嵌入 retryPolicy,但我不明白应该在我的代码中设置配置的位置。
理想情况下,我希望 python 客户端指定其重试策略,但我也有兴趣了解如何从服务器端管理它。
经过一番挖掘,我想出了这个剪断,但它不起作用。

import json
from grpc import insecure_channel

service_default_config = {
# see https://github.com/grpc/proposal/blob/master/A6-client-retries.md#retry-policy-capabilities
"retryPolicy": {
"maxAttempts": 5,
"initialBackoff": "1s",
"maxBackoff": "10s",
"backoffMultiplier": 2,
"retryableStatusCodes": [
"RESOURCE_EXHAUSTED",
"UNAVAILABLE"
]
}
}
service_default_config = json.dumps(service_default_config)

options = [
('grpc.service_config', service_default_config)
]

insecure_channel(hostname, options=options)
谁能指出我的相关文档,让我了解这是如何工作的,或者向我解释我的误解?

最佳答案

我对配置的语法有同样的问题。
我找到了 this .
简而言之,必须将 retryPolicy 指定为描述如何处理对特定服务的调用的 methodConfig 的一部分:

import json
import grpc

json_config = json.dumps(
{
"methodConfig": [
{
"name": [{"service": "<package>.<service>"}],
"retryPolicy": {
"maxAttempts": 5,
"initialBackoff": "0.1s",
"maxBackoff": "10s",
"backoffMultiplier": 2,
"retryableStatusCodes": ["UNAVAILABLE"],
},
}
]
}
)

address = 'localhost:50051'

channel = grpc.insecure_channel(address, options=[("grpc.service_config", json_config)])
哪里 <package><service>在您的 proto 文件中定义。

关于grpc - 将 retryPolicy 与 python GRPC 客户端一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64227270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com