首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在使用C++ SDK进行同步调用时修复aws超时?

如何在使用C++ SDK进行同步调用时修复aws超时?
EN

Stack Overflow用户
提问于 2020-07-13 08:12:37
回答 1查看 572关注 0票数 0

当我调用lambda函数时,执行时间在1到15秒之间。如果我通过C++ SKD调用函数,就会得到超时。这些超时似乎是在几秒钟后发生的(这只是人类的判断,我实际上并没有给它计时)。

问题:如何告诉SDK等待缓慢的lambdas返回而不是超时?

不起作用的东西:

您可以在HTTP设置中更改此设置里。在C++ SDK HTTPOptions中,这不是这样的选项。

为lambda客户端提供一个具有更大的配置 (套接字超时)的connectionTimeoutMS是没有帮助的。此外,默认情况下,客户端的httpRequestTimeoutMs设置为0,这意味着它将永远等待。

我使用的是同步请求,它似乎没有额外的超时选项。

附加信息:

我使用一个客户端并行运行多个请求。

如果我使用异步请求,也会发生错误。

相关:

如何在使用AWS调用Lambda函数时排除重试和超时问题?

EN

回答 1

Stack Overflow用户

发布于 2020-09-03 16:57:53

同样的事情给了我一次艰难的时光。你可能已经找到了解决办法,但对于其他人来说,这就是我所做的。有客户端配置,可以编辑默认连接时间。发送请求的默认连接时间是1秒,接收请求的时间是3秒,如果在这个时间段内完成了请求,那么很好,否则将调用根据lambda设置进行的重试。这两者的行为在它们各自的头文件中都有很好的解释。你也可以玩内存大小的蓝达越高,内存就越低,响应时间也一样。

代码语言:javascript
运行
复制
             Aws::Client::ClientConfiguration m_ClientConfig;
             m_ClientConfig.requestTimeoutMs = 300000; // i.e. 300 seconds
             m_ClientConfig.connectTimeoutMs = 300000; 


            /**
             * Socket read timeouts for HTTP clients on Windows. Default 3000 ms. This should be more than adequate for most services. However, if you are transfering large amounts of data
             * or are worried about higher latencies, you should set to something that makes more sense for your use case.
             * For Curl, it's the low speed time, which contains the time in number milliseconds that transfer speed should be below "lowSpeedLimit" for the library to consider it too slow and abort.
             */
            long requestTimeoutMs;
            /**
             * Socket connect timeout. Default 1000 ms. Unless you are very far away from your the data center you are talking to. 1000ms is more than sufficient.
             */
            long connectTimeoutMs;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62871741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档