Nuestros mejores investigadores han agotado sus provisiones de café, buscando día y noche por la solución, hasta que Liliana halló la solución en Bitbucket así que ahora la comparte contigo.
Solución:
Resultó que no podía usar el @Scheduled
anotación, pero implementé una solución alternativa. En el JavaDoc de SchedulingConfigurer se afirma que:
[SchedulingConfigurer is] Por lo general, se usa para configurar un bean TaskScheduler específico que se usará al ejecutar tareas programadas o para registrar tareas programadas de forma programática en oposición al enfoque declarativo de usar la anotación @Scheduled.
A continuación, cambié el trabajo cron para implementar el Runnable
interfaz y luego actualicé mi archivo de configuración para implementar el SchedulingConfigurer
vea abajo:
@Configuration
@EnableScheduling
@ComponentScan("package.that.contains.the.runnable.job.bean")
public class JobConfiguration implements SchedulingConfigurer
private static final String cronExpression = "0 0 14 * * *";
private static final String timeZone = "CET";
@Autowired
private Runnable cronJob;
@Bean
CronTrigger cronTrigger()
return new CronTrigger(cronExpression, TimeZone.getTimeZone(timeZone));
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar)
taskRegistrar.addCronTask(new CronTask(job, cronTrigger()));
Lea el JavaDoc de @EnableScheduling para obtener más información.
Actualizar
A partir de Spring 4, se resolvió el problema SPR-10456 de Spring Jira. En consecuencia, el @Scheduled
la anotación tiene una nueva zona attribute exactamente para este propósito, por ejemplo
@Scheduled(cron = "0 0 14 * * *", zone = "CET")
public void execute()
// do scheduled job
hay elemento zone
en anotación @Scheduled
a partir de la versión 4.0.
Puede insertar una zona horaria como string que puede ser aceptado por java.util.TimeZone
.
Tu código debería ser así:
@Scheduled(cron = "0 0 14 * * *", zone = "GMT-5")
public void execute()
// do scheduled job
“Zona” será la zona horaria del país deseado.
Aquí hay un buen tutorial sobre tareas programadas con Spring:
https://www.baeldung.com/cron-expresiones
Recuerda algo, que tienes la capacidad de esclarecer tu experiencia .