如果侦听器被杀死,SQS消息会怎样?

时间:2018-12-23 07:18:05

标签: amazon-web-services amazon-sqs

说,我有一个SQS和一个监听该队列的监听器进程。假设有一条消息,并且在处理该消息时说该进程已自动终止。那么,此消息将如何处理?它会再次进入SQS还是继续飞行?还是将其配置为DLQ?

1 个答案:

答案 0 :(得分:2)

您的测量将出现“隐形超时”。在此时间段内,后续的消息请求不会退还它们。

一旦超时,该消息将由另一个呼叫返回。

一旦您“确认”了该消息,便不会再对其进行处理。

通常,SQS使用“至少一次”语义。直到您的队列的最长使用期限,它都会重新处理邮件,直到成功处理为止。

如果没有真正疯狂的内容(您在14天内一直使邮件失败),它将确保您的邮件得到处理。

这确实意味着您为响应消息而运行的代码必须是幂等的(需要多次运行而不改变结果)。

但是,如果您能够做到这一点,并且可以在14天之内对代码中的错误进行响应,那么将保证您对消息进行处理。

这有意义吗?