Este tema responde a algunas preguntas frecuentes sobre la administración de trabajos de Spring en SchedulerX.
¿Por qué el temporizador original de Spring sigue ejecutándose después de que SchedulerX asume los trabajos programados de Spring?
Si especifica un programador personalizado en su aplicación, SchedulerX lo sobrescribe. Compruebe si en el proyecto de su aplicación existe la clase que implementa la interfaz org.springframework.scheduling.annotation.SchedulingConfigurer y si se invoca el método setScheduler de ScheduledTaskRegistrar para sobrescribir el programador predeterminado. Si la clase existe o se sobrescribe el programador predeterminado, comente el código relacionado.
¿Cómo obtengo el contexto de un trabajo de Spring?
Agregue el siguiente código al proyecto de su aplicación para obtener el contexto:
JobContext jobContext = ContainerFactory.getContainerPool().getContext();
¿Un trabajo de Spring devuelve un resultado de procesamiento?
Si la versión del agente es posterior a la 1.10.11, los trabajos de Spring pueden devolver resultados de procesamiento. Estos resultados se devuelven según los métodos de programación especificados.
@Scheduled(cron = "0/5 * * * * ?")
public ProcessResult helloStandalone1() {
try {
logger.info(DateUtil.now() + " " + Thread.currentThread().getName() + " hello world. start");
TimeUnit.SECONDS.sleep(2L);
logger.info(DateUtil.now() + " " + Thread.currentThread().getName() + " hello world. end");
} catch (Exception e) {
e.printStackTrace();
logger.info(DateUtil.now() + " " + Thread.currentThread().getName() + " hello world. exception end..");
}
return new ProcessResult(true, "Processing result");
}
@Scheduled(cron = "0/5 * * * * ?")
public String helloStandalone2() {
try {
logger.info(DateUtil.now() + " " + Thread.currentThread().getName() + " hello world. start");
TimeUnit.SECONDS.sleep(2L);
logger.info(DateUtil.now() + " " + Thread.currentThread().getName() + " hello world. end");
} catch (Exception e) {
e.printStackTrace();
logger.info(DateUtil.now() + " " + Thread.currentThread().getName() + " hello world. exception end..");
}
return "Processing result";
}