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
專家
已審閱 1 個月前
  • 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

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南