0

我对轮询线程的行为方式有一点怀疑。

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

  1. 如果队列中有 5-6 条消息。那么能退多少呢?轮询线程会等待一段时间以获取更多消息吗?
  2. 如果队列中没有消息,它会等到收到一条消息还是会等待更多?
  3. 如果队列中有超过 10 条消息,那么它将如何表现?
4

1 回答 1

0
  1. 如果队列中的消息比您等待的消息少,那么将返回一些小于或等于可用消息数量的数字。在您的示例中,您可能获得全部 6 个,但您可能只获得 3 个并且必须再次轮询其余部分。
  2. 如果没有消息,则轮询将等待您的超时时间(在您的情况下为 20 秒)并返回一个空列表。
  3. 10 条消息版本可能会返回所有 10 条消息,但可能不会。与问题 1 一样,请继续阅读以了解所有内容。

我所看到的是,如果您有 100 条消息,那么您更有可能收到所有消息,但这仍然不能保证。

于 2019-04-08T21:04:44.567 回答