2015-10-31 54 views
6

È menzionato nel Spring documentation che:Spring ThreadPoolTaskScheduler vs ThreadPoolTaskExecutor

ThreadPoolTaskScheduler implementa effettivamente interfaccia Spring TaskExecutor e, in modo che una singola istanza può essere utilizzato per l'esecuzione asincrona appena possibile così come previsto, e potenzialmente ricorrenti, esecuzioni.

Quindi, quali sono gli scenari in cui si desidera utilizzare ThreadPoolTaskExecutor esempio sopra ThreadPoolTaskScheduler esempio?

Attualmente sto usando Spring XML. Io sono la creazione di fagioli di ThreadPoolTaskScheduler come segue:

<task:scheduler id="myScheduler" pool-size="1"/> 

mentre fagiolo di ThreadPoolTaskExecutor esempio può essere creato come

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

risposta

7

La frase che hai citato nella documentazione di primavera è solo dicendo che si possibile utilizzare uno scheduler di eseguire le attività, ma che non è il suo scopo principale. A ThreadPoolTaskExecutor fornisce una configurazione a grana fine sul pool di thread tramite le sue proprietà corePoolSize, maxPoolSize, keepAliveSeconds e queueCapacity. Uno scheduler come ThreadPoolTaskScheduler non fornisce tale configurazione.

Come tale, la scelta tra i due deriva dalla seguente domanda: devo eseguire o pianificare l'esecuzione delle attività?

+0

Grazie, mi aiuta davvero a capire meglio tra Executor e Scheduler. –