SWF 文档建议“工作人员应将其客户端套接字超时设置为至少 70 秒(比服务可能保留轮询请求的最长时间高 10 秒)。”
目前我的作品收到读取超时,例如:
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)
,但它似乎没有产生任何效果。我看到 DEFAULT_TIMEOUT 在 botocore enrpoint.py 上设置为 60,但找不到在 boto3 中自定义它的方法。我如何将它移至 70 以避免在长轮询中出现读取超时?
最佳答案
您可以像这样设置客户端:
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)
关于python - boto3 在 SWF 上的 60 秒超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31714800/