python - boto3 在 SWF 上的 60 秒超时

标签 python amazon-swf boto3

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/

相关文章:

python - 如何在 GitHub 源 (Python) 上向 Heroku 添加我不想要的 secret 文件

r - 用于短期任务的 Amazon EC2 按需工作人员

php - 升级运行 Upstart + PHP + SWF 事件脚本直到事件完成

python - 如何连接到 boto3 中的区域

amazon-web-services - 使用 boto3.client.invoke 调用 lambda 时出现 error_message :“Key error”

amazon-web-services - 从 AWS Lambda 到 Athena 的同步调用

python - 如何在其他函数中移动数据库请求(使用产量)?

python - Numpy 和 matplotlib 垃圾收集

java - 在java中实现流程图类型的工作流

python - pyautogui.locateCenterOnScreen() 返回 None 而不是坐标