- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在阅读 SNS FAQ 时关于使用 Lambda 函数重试行为的部分,我遇到了以下语句:
Q: What happens to Amazon SNS messages if the subscribing endpoint is not available? Lambda: If Lambda is not available, SNS will retry 2 times at 1 seconds apart, then 10 times exponentially backing off from 1 seconds to 20 minutes and finally 38 times every 20 minutes for a total 50 attempts over more than 13 hours before the message is discarded from SNS.
据我所知,Lambda 函数实现了自己的节流重试机制,如 Lambda Throttling Bevaviour Documentation 中所述:
Asynchronous invocation: If your Lambda function is invoked asynchronously and is throttled, AWS Lambda automatically retries the throttled event for up to six hours, with delays between retries.
那么,当函数受到限制并出现另一条 SNS 消息时,究竟会发生什么? SNS 是将 Lambda 视为“可用”并中止重试机制,从而允许 Lambda 自动重试,还是继续重试传递消息?
最佳答案
“可用”一词是指 SNS 联系 Lambda 服务并提交单个请求以调用该函数的能力。
理解这个的关键需要你先知道SNS invokes Lambda functions asynchnously ,然后您了解其含义。
异步调用请求不会向调用方(在本例中为 SNS)提供任何反馈,无论函数是立即运行还是被限制,或者它是成功还是抛出异常。
SNS >> Lambda: "Hi, run this Lambda function asynchronously, with this payload."
Lambda >> SNS: "Okay, I received your request and will do that as soon as it is possible. Goodbye."
调用者 (SNS) 不关心后面的细节。成功发出请求后,SNS 完成处理该消息,现在由 Lambda 服务立即调用函数和/或参与记录的 Lambda 重试行为。
SNS 每条消息实际上只联系 Lambda 服务一次。当它不能这样做时,Lambda 就不是“可用的”。这种情况应该非常、非常少地发生……但是如果 SNS 无法建立联系,那就是当 SNS 参与 SNS 常见问题解答中描述的行为时——尝试提交调用该功能的请求。一旦完成,SNS 的角色就完成了,其余的由 Lambda 服务处理。
每条消息都在 SNS/Lambda 集成中独立处理,SNS 会尽快传递每条消息,SNS 不会意识到函数调用随后是否受到限制。
关于amazon-web-services - SNS 的 Lambda 节流行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56670249/
我想执行一堆 WebRequest,但设置了可以同时启动的阈值。 我遇到了这个LimitedConcurrencyTaskScheduler example并尝试像这样使用它 scheduler =
初始情况 我正在开发 .NET Framework 4.0、C#、Winform 应用程序。应用程序将在 GridView 中列出(并测试)WebServiceOperations(目前有 60 个
我有一个具有 5 个读取和 5 个写入容量的发电机表。在这张表中,我有两条记录。 然后我决定通过一次推送大量写入(一次突发大约 4000 条记录)看看我会得到什么样的错误响应。蓝色的“已消耗”线直接越
我在限制作业和“挂起”或“失败”的作业方面遇到了麻烦。这基本上就是我正在尝试做的事情。 $allServers = Import-Csv "C:\temp\input.csv" $job = $all
我正在编写一个运行微 Controller 仿真器的C++程序。运行模拟器的线程在这样的循环中这样做: while(should_run) { simulator->RunSingleClockC
我有这个简单的代码,它: 创建 IObservable 采样半秒 使用 ThreadPool 调度程序订阅它 使用 SynchronizationContext 观察它 代码如下: private v
我正在尝试翻译一些 C# 代码,它一次创建 N 个线程并在每个线程中运行一个函数。 我有两个问题: -如何限制一次N个线程? -当我在我的主要方法中引用静态整数 FastestMemory 和 Slo
我有一个splitpane我的 React 项目中的组件,在调整 Pane 大小时将对其宽度使用react并更改内容。拆分 Pane 组件具有以下事件监听器... componentDidMo
使用 urllib2 时是否可以轻松限制 kbps?如果是,如果您能指导我使用任何代码示例或资源,我们将不胜感激。 最佳答案 urllib 模块中有urlretrieve(url, filename=
使用 urllib2 时是否可以轻松限制 kbps?如果是,如果您能指导我使用任何代码示例或资源,我们将不胜感激。 最佳答案 urllib 模块中有urlretrieve(url, filename=
我正在为 Android Phone 构建应用程序,但遇到了一些奇怪的“节流”。我相信这是因为正在调用信号量来停止应用程序正在做的任何事情来处理手机中的其他内容。虽然我不是积极的。 我很好奇是否有一种
我使用 Charles (4.0.2) 作为代理服务器来测试我的移动应用程序,它依赖于 WKWebView 内部的 WebSockets。我正在尝试模拟一种情况,在这种情况下,用户会短暂地体验到他们的
我有一个 request-promise向 API 发出请求的函数。我受此 API 的速率限制,并且不断收到错误消息: Exceeded 2 calls per second for api clie
我正在使用网络服务发送 100 个 http 帖子。但是,该服务每秒只允许 5 个。我想知道 usleep 命令是否是执行此操作的最佳方法。例如: foreach($JSONarray['DATABA
我在随机时间以高频率接收数据对象,并且需要使用这些更新 JavaFX GUI。但是,我不想用大量的可运行对象填充 javafx 事件队列(我使用 Platform.RunLater)。 我一直在思考如
假设我有一个即时消息应用程序,每次收到消息时它都会发出哔声。我想 debounce 哔哔声,但我想在第一条消息到达时播放哔哔声,而不是为后续消息播放(在时间跨度内,比如 2 秒)。 另一个示例可能是:
所以我现在有: App.html import { debounce } from 'lodash' export default { data () { na
我将 Highstock.js 更新到 1.3 并注意到 afterSetExtemes 事件在每次拖动事件时触发,而不是 dragend/mouseup。我正在通过 ajax 更新主要系列,但现在这
我已经在我的 pod 的所有容器上设置了 CPU 和 Memory Requests=Limits,以使其符合保证服务质量类的资格。现在,查看过去 6 小时同一 Pod 的这些 CPU 使用率和 CP
我将 Highstock.js 更新到 1.3 并注意到 afterSetExtemes 事件在每次拖动事件时触发,而不是 dragend/mouseup。我正在通过 ajax 更新主要系列,但现在这
我是一名优秀的程序员,十分优秀!