3

SWF 文档建议“工作人员应将其客户端套接字超时设置为至少 70 秒(比服务可能持有轮询请求的最长时间高 10 秒)。”

目前我的作品会收到 readtimeouts,例如:

botocore.vendored.requests.packages.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='swf.eu-west-1.amazonaws.com', port=443): Read timed out. (read timeout=60)

我已经设置了

socket.setdefaulttimeout(70) 

,但它似乎没有产生任何效果。我看到 botocore enrpoint.py 上的 DEFAULT_TIMEOUT 设置为 60,但找不到在 boto3 中自定义它的方法。如何将其移至 70 以避免长时间投票时出现读取超时?

4

2 回答 2

7

您可以像这样设置客户端:

from boto3.session import Session
from botocore.client import Config

session = Session(aws_access_key_id=aws_id,
                  aws_secret_access_key=aws_secret,
                  region_name=region)
config = Config(connect_timeout=50, read_timeout=70)
client = session.client('swf', config=config)
于 2015-09-21T04:45:14.530 回答
0

我遇到了同样的问题并在github上得到了答案:

目前没有此配置选项。将此标记为功能请求。

所以目前DEFAULT_TIMEOUT = 70在 botocore endpoint.py 中设置似乎是唯一的解决方法。

于 2015-08-17T14:57:43.510 回答