Я внес одно изменение в использование spring-jms версии 4.3.22-RELEASE.
Теперь это работает как показано ниже:
Изначально в заявке определены 3 нет потребителей и максимум 25. И теперь, если будет создано больше сообщений, скажем, 25, тогда потребителей останется только 3, и количество потребителей будет постепенно увеличиваться в зависимости от ожидающих сообщений. Это может пойти до 13, но не будет создавать максимальных потребителей до 25 согласно определению.
Из-за этого порядок может измениться. Например:
Сообщение1 Потребитель1 (выполняется)
Сообщение2 Потребитель2 (выполняется)
Сообщение3 Потребитель3 (в процессе)
Теперь, если эти сообщения обрабатываются и появляются новые сообщения, они будут ждать потребителей, как показано ниже
Сообщение4 Потребитель1 (ожидание)
Сообщение5 Потребитель2 (ожидание)
Сообщение6 Потребитель3 (ожидание)
Теперь, когда эти сообщения 4-6 находятся в состоянии ожидания и продолжают поступать новые сообщения, что заставляет систему создавать новых потребителей, эти сообщения будут использоваться первыми.
Сообщение7 Потребитель4 (в процессе)
Сообщение8 Потребитель5 (выполняется)
Сначала используются сообщения 7-8, а затем сообщения 4-6. Но они будут потреблены, как только потребители освободятся.