Spring Integration - потребител с максимална пропускателна способност

Каква конфигурация на Spring Integration елементи, ако има такива, би поддържала модела на:

  • Една опашка от съобщения, представляваща входяща работа
  • Множество потребители четат от тази опашка (едно съобщение трябва да отиде само до един потребител)
  • Всеки потребител гласува само когато няма работа; ако в момента обработва съобщение, тогава не анкетирайте. Ако не върши работа, проверявайте на всеки X секунди, за да видите дали е пристигнала нова работа.

person EngineerBetter_DJ    schedule 05.07.2012    source източник


Отговори (1)


Ако приемем, че имате предвид с JMS,

<jms:message-driven-channel-adapter/>

Вижте атрибути като concurrent-consumers, max-concurrent-consumers, idle-consumer-limit, idle-task-execution-limit.

Цялото управление на потребителите се извършва от основното ядро ​​Spring DefaultMessageListenerContainer.

person Gary Russell    schedule 05.07.2012
comment
Здравей Гари, благодаря за отговора. Моето разбиране за каналните адаптери за инфраструктура за съобщения беше, че каналният адаптер ще се състезава, изтегляйки възможно най-много съобщения и поставяйки ги на „вътрешна“ опашка на Spring Integration, вместо да ги изтегля от опашката на инфраструктурата с темпото, което услугата надолу по веригата ги поглъща? - person EngineerBetter_DJ; 09.07.2012
comment
Не; вие контролирате скоростта на потребление с помощта на атрибута concurrent-consumers; няма вътрешна опашка, стига да не използвате асинхронно предаване (само директни канали) във вашата SI конфигурация. - person Gary Russell; 13.07.2012