tutorial pom mvc initial español java spring spring-boot

java - pom - ¿Cuál es el tamaño de la agrupación del programador predeterminado en Spring-Boot?



spring boot vs spring mvc español (1)

Estoy usando spring-boot y @Scheduled Anotación programada para ejecutar algunas tareas.

¿Cómo puedo averiguar cuál es el tamaño de grupo predeterminado de tareas programadas por defecto en spring-boot?

Motivo: la siguiente clase no ejecuta los trabajos en paralelo, sino uno después del otro. ¿Tal vez solo un ejecutor de un solo hilo está configurado por defecto?

@Service public class ZipFileTesterAsync { @Scheduled(fixedDelay = 60000, initialDelay = 500) public void run() throws Exception { System.out.println("import 1"); TimeUnit.MINUTES.sleep(1); System.out.println("import 1 finished"); } @Scheduled(fixedDelay = 60000, initialDelay = 1000) public void run2() throws Exception { System.out.println("import 2"); TimeUnit.MINUTES.sleep(1); } }

Resultado: el segundo trabajo se ejecuta después de la primera finalización.


Sí, todos los métodos @Scheduled comparten un solo hilo de forma predeterminada. Es posible anular este comportamiento definiendo una @Configuration como esta:

@Configuration public class SchedulingConfigurerConfiguration implements SchedulingConfigurer { @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler(); taskScheduler.setPoolSize(100); taskScheduler.initialize(); taskRegistrar.setTaskScheduler(taskScheduler); } }

Este ejemplo garantiza que todos los métodos @Scheduled compartan un grupo de subprocesos de tamaño 100.