AWS Тайм-аут видимости Simple Queue Service (SQS) - установить максимальное число повторов? - PullRequest
0 голосов
/ 26 февраля 2020

У нас есть очередь, использующая amazon SQS, которая содержит сообщения.

У нас есть несколько рабочих, которые читают из этой очереди, эти рабочие не сохраняют состояния, то есть они не могут вспомнить, сколько повторений у каждого сообщения есть, если мы не обновим сообщение с помощью количество попыток.

В настоящее время, если рабочий не может обработать сообщение, сообщение вернется в очередь через X секунд, которые мы установили, потому что мы не удаляем его, мы устанавливаем параметр VisisiblityTimeout, который означает, что сообщение вернется в очередь через 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,
            });
        });
    });

}

1 Ответ

3 голосов
/ 26 февраля 2020

Вы можете использовать A DLQ (Dead-Letter Queue). Установите политику перезапуска SQS на нет. попыток вы хотите, как

enter image description here

Подробнее https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-dead-letter-queue.html

...