SQS delivery delay at lower rate

0

Hello,

For SQS parameter Delivery delay, in Management Console is written:

If your consumers need additional time to process messages, you can delay each new message coming to the queue.

If all messages will be delayed, won't they arrive at the consumer with same time difference among them (too fast), but only later ? Is there the possibility to configure SQS so that the consumer to receive the messages at a lower rate ?

If above configuration is not possible, because this SQS receives messages from S3, is it possible to set SQS message timers for S3 events (delay each event differently, per bucket maybe) from configuration, without code ?

Thank you,
Mihai ADAM

질문됨 3달 전124회 조회
1개 답변
1

Delay timer applies to a queue, but you can also override it per message. If you apply it on the queue itself, you are correct, all the messages will be available at the same rate in which they arrived into the queue, with the delay value offset.

I am not sure what you are trying to achieve, but if you are consuming the messages yourself (i.e. not using Lambda functions), you can control the consumption rate.

If you want to have different delays for different buckets, you can create different queues. Alternatively, you can send the S3 events to EventBridge and use different rules for the different buckets, each rules sending the messages to the queue with a different delay. You may need to use a Lambda function between the rule and the queue as I am not sure you can specify a delay when sending the messages directly from the rule to the queue.

profile pictureAWS
전문가
Uri
답변함 3달 전
profile picture
전문가
검토됨 한 달 전
  • Hello, The best solution for my use case was: "If you want to have different delays for different buckets, you can create different queues" Thank you, Mihai

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인