5 votes

Consommateurs concurrents

Je souhaite configurer une application d'intégration Spring de manière à ce que si je place un certain nombre de tâches, chacune représentée par un message, sur un canal, l'un des points d'extrémité choisira la tâche suivante et la traitera. Cela impliquerait un service d'exécution de pool de threads, je suppose.

6voto

Sab Than Points 171

Oui, utilisez un distributeur + un exécuteur de tâches avec le canal (aka Canal d'exécution ). De cette manière, tout point d'extrémité (par ex. service-activator ) consommant le canal sera invoqué de manière asynchrone en utilisant le pool de threads du répartiteur.

Dans l'exemple suivant, tous les messages atterrissant sur le canal channel01 sera consommé par le jobLauncher au sein de l'un des services de l taskExecutor fils.

<int:channel id="channel01">
    <int:dispatcher task-executor="taskExecutor">
</int:channel>

<task:executor id="taskExecutor" pool-size="2"/>

<int:service-activator input-channel="channel01" ref="jobLauncher">

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X