Je souhaite exécuter simultanément plusieurs tâches planifiées.@Scheduled & scheduler: Que fait exactement la taille du pool?
Lors de la configuration du printemps de le faire, je peux fournir une piscine de taille au planificateur:
<task:annotation-driven executor="myExecutor" scheduler="myScheduler"/>
<task:executor id="myExecutor" pool-size="32"/>
<task:scheduler id="myScheduler" pool-size="1000"/>
Mais qu'est-ce exactement la taille avec une belle piscine ici signifie? Cela signifie-t-il qu'il ne peut stocker que 1000 méthodes programmées ou que cela signifie que seulement 1000 méthodes peuvent être traitées en même temps?
tldr; Si une méthode annotée @Scheduled (fixedDelay = 60) est et non exécutée pour le moment (c'est-à-dire entre le délai), est-ce qu'elle remplit le pool ou pas?
Donc, il n'est pas regroupé avant l'exécution? Lorsque l'exécution est terminée, le thread correspondant est supprimé du pool jusqu'à la prochaine exécution? – chzbrgla
La documentation n'est pas spécifique sur ce que signifie 'pool-size', mais généralement, cela signifie le nombre total de threads qui existeront à tout moment. Certains d'entre eux peuvent être occupés, et certains peuvent être inactifs, mais tous sont considérés comme étant dans la piscine. –
@Tom - Vous avez raison sur le fonctionnement du pool, mais la documentation est assez spécifique: elle utilise ThreadPoolTaskExecutor et la taille du pool est passée à celle-ci. – GaryF