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

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则