Spring云中的轮询线程行为

问题描述 投票:0回答:1

关于轮询线程的行为方式,我有一点疑问。

让我们假设一个场景,我每次轮询收到的maxNumberOfMessages是10.我们正在使用DEFAULT_WAIT_TIME = 20秒。我想知道它在下面提到的不同场景中的表现。

  1. 如果队列中有5-6条消息。那么有多少可以退货?并且轮询线程会等待一段时间才能获得更多消息吗?
  2. 如果队列中没有消息,它会等到收到一条消息还是等待更多消息?
  3. 如果队列中有超过10条消息,那么它将如何表现?
amazon-web-services spring-cloud amazon-sqs spring-cloud-aws
1个回答
0
投票
  1. 如果队列中的消息少于您正在等待的消息,则将返回小于或等于可用消息数的某个数字。在你的例子中,你可能得到所有6,但你可能只得到3并且必须再次轮询其余的。
  2. 如果没有消息,则轮询将等待超时(在您的情况下为20秒)并返回空列表。
  3. 10个消息版本可能会返回所有10条消息,但可能不会。如问题1所示,继续阅读以获取所有内容。

我所看到的是,如果你有100条消息,那么你更有可能得到它们,但它仍然无法保证。

© www.soinside.com 2019 - 2024. All rights reserved.