您的重试逻辑正确且无所事事

2026年8月24日3 次浏览来源:Dev.to阅读原文

对于我的其中一篇文章, 这篇文章是关于一个AI助理在Lambda上错过了SQS触发器.

Mads Hansen以一句句子回答,我一直无法不思考,因为:触发形状是第一个合同,交付和再试语义是第二个。

向右转会告诉你如何读取消息.

它没有告诉你当一个批发的10个信息之一会发生什么。

我把它作为第87期存档.

该列表中的第一个项目是一个无法通过读取代码来捕捉代码的bug,因为代码是好的.

处理器正确而无所事事 这里是一个批量的消费者。

如果读取AWS文件并跟随它们,这就是你的形状。 9个记录成功,1个投出,处理者报告的正是失败的.

这是部分批量反应的全部要点:工作过的9个被从队列上删除,失败的9个自动返回.

除了这个处理器不这样做,因为是否有人听取返回值在此文件中没有决定.

由事件源映射决定.

如果在映射中没有包含 , Lambda 将丢弃阵列 。

整批被标记失败 。

所有10个记录都已重新交付,包括9个已经完成的记录。

失败模式是重复处理. 9个命令被处理两次,或20次,因为一个毒消息在排队重试限制之前,不停地重放其批次.

如果你的处理者不是一流的,那就是双重充电的客户,而不是日志行.

为什么没人在评论中看到这个 重新用批判的眼光读取那个操作者 亦无所出.

它正确地构建了数组,它使用识别符,每个记录捕获,而不是环绕循环.

单位测试输入了10个记录 并填报了一张通行证 这就是它与普通虫不同的原因。

密码没有错 这是惰性。

一半的合同能使它工作,生活在一个不同的寄存器的Terraform模块中,或者在CDK堆积一个不同的团队拥有,或者在18个月前有人点击控制台的复选箱中.

你的编辑器、插件或测试套房里 没有任何能见度 而一位AI助手,要求"向这个消费者添加部分分批故障处理",写得正好是上面的处理者,并报告完成的工作.

这不是幻觉。

它写了它唯一能看到的一半。

同一合同的两端,两个不同的结论 当我把支票建到下面时, 很明显,不匹配有两个方向, 它们并不同样糟糕。

第一是测绘侧缺口。

寻找批量尺寸大于1且没有的触发器。

一个批次没有部分故障,所以被跳过.

这个是分级的介质:这是一个缺失的能力,但处理者可能真的不需要它.

第二是错配.

当代码建立数组时起火 而触发器的映射有触发作用 这是高分, 描述说为什么: 代码读作正确,其单位测试通过;只有绘图才说出真相.

缺少的设定是缺失。

一个不匹配是积极的虚假信念——有人故意写了处理者,相信有记录的报导。

他们作出的每一个下游关于“一能”的决定都基于这种信念。

侦测密码是便宜的 两台扫描仪都与名称吻合: ts-morph 寻找一个名为 的属性或短手属性,而 Python 扫描仪匹配相同的dict 密钥.

对返回语句没有控制流追踪,因为用这个名字建立数组在Lambda处理器中没有任何其他目的.

基础设施方面也没有任何代价。

运行在触发提取的响应上 已经通过页,所以整个检查是外接的字段加两个分析器。

保持诚实的规则 一个细节比分析者本身更重要。

两次检查火力

分享