看此配置:
@SqsListener(value = "my-queue", pollTimeoutSeconds = "10", maxMessagesPerPoll = "1", maxConcurrentMessages = "1")
阅读我理解的文档:
If a message arrives within 10 seconds, it's immediately processed.
我做了测试并确认了这一点。
我知道,每10秒钟,一个新的池将再次启动。我可以在CloudWatch Graphic上看到这一点。唯一的区别是,使用1S将每1次发出请求,而10s请求将等待10s。 (更多要求,更多的费用)
我的问题是:在接收消息方面,10或1秒之间没有区别,当消息在SQ中可见时,邮件将始终立即处理,这是正确的吗?
当它们在SQ中可见时,始终将立即处理序列,这是正确的吗?
立即是一个强烈的词,但是为简单起见,我会说是的。
如果客户端已经开始进行轮询,并且在队列中输入了一条消息,则SQS将通过此消息将响应发送给客户端。
pollTimeoutSeconds
pollTimeoutSeconds
与来自WaitTimeSeconds
的参数是同一件事。