java - mvc - spring boot scheduled cron example
Spring @ AnotaciĆ³n programada (1)
¿Cómo puedo usar @Scheduled annotation of spring dinámicamente?
CronTrigger(String expression, TimeZone timeZone)
Como tengo varias zonas horarias en la base de datos, ¿cómo puedo pasarlas dinámicamente?
Intenté esto en mi código:
TimeZone timezone = null;
String timezone1 = null;
public SchedulerBean(String timezone2)
{
this.timezone1 = timezone2;
//constructor
}
@Scheduled(cron="0 0 8 * * ?", zone =timezone.getTimeZone(timezone1) ) //Error at this line
public void sendQuestionNotif()
{
//......code
}
Aquí está el error que estoy recibiendo
*Type mismatch: cannot convert from TimeZone to String*
Por favor, ayúdame. Porque quiero activar cron en función de las zonas horarias . TIA.
Los parámetros de anotación no pueden establecerse dinámicamente. Puedes hacerlo programáticamente, así
class Scheduler implements Runnable {
public Scheduler(TaskScheduler scheduler, String timezone, String cron) {
scheduler.schedule(this, new CronTrigger(cron, TimeZone.getTimeZone(timezone)));
}
@Override
public void run() {
//
}
}