gpt4 book ai didi

node.js - AWS Simple Queue Service (SQS) 可见性超时 - 设置最大重试次数?

转载 作者:太空宇宙 更新时间:2023-11-04 03:12:49 25 4
gpt4 key购买 nike

我们有一个使用亚马逊 SQS 的队列,其中包含消息。

我们有多个工作人员从该队列中读取数据,这些工作人员是无状态的,这意味着他们无法记住每条消息的重试次数,除非我们使用重试计数更新消息。

目前,如果worker处理消息失败,消息将在我们设置的X秒后返回队列,因为我们不删除它,我们设置了VisisiblityTimeout参数,这意味着如果消息未被worker删除,消息将在X设置秒后返回队列。

SQS 队列或消息设置中是否有一个选项可以创建重试计数,例如,如果消息返回队列超过或等于 3 次,它将从队列中删除?

public async pollMessage(queueName: string): Promise<QueueMessagePollResponse> {

const parameters = {
VisibilityTimeout: this.configService.queueVisibilityTimeoutSec,
QueueUrl: this.buildQueueUrl(queueName),
};

return new Promise<QueueMessagePollResponse>((resolve, reject) => {
this.sqs.receiveMessage(parameters, (error, data) => {
if (error) {
this.logger.error(`Failed polling from queue with error: ${error.message}`);
reject(error);
}

if (!data.Messages) {
return resolve(null);
}

resolve({
messageDeletionId: data.Messages[0].ReceiptHandle,
data: data.Messages[0].Body,
});
});
});

}

最佳答案

You can use A DLQ (Dead-Letter Queue). Set the redrive policy of SQS to no. of tries you want, like

enter image description here

更多详情https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-dead-letter-queue.html

关于node.js - AWS Simple Queue Service (SQS) 可见性超时 - 设置最大重试次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60414154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com