Saltar al contenido

Actualice la expresión Cron en SpringBoot @Scheduled

Poseemos la mejor solución que hallamos por todo internet. Nosotros queremos que te resulte de mucha utilidad y si deseas compartir algún detalle que nos pueda ayudar a perfeccionar nuestra información hazlo con total libertad.

Solución:

Si desea configurar la programación del trabajo en tiempo de ejecución, no creo que pueda usar la anotación @Scheduled.

Puede usar su propio programador en lugar de Documentación de primavera :

scheduler.schedule(task, new CronTrigger("0 15 9-17 * * MON-FRI"));

Luego, si desea cambiar la configuración, puede cancelar la programación y crear una nueva.

TaskScheduler devolver un ScheduledFuture que debe guardar en algún lugar y se puede cancelar con cancel(...) método.

Creo que @Scheduled no admite esta característica (debe ser interesante implementar eso). Para la función de programación avanzada, debe usar cuarzo u otra solución de programación. Mi respuesta se basa en la solución de cuarzo:

@Component
class ReschedulerComponent

    @Autowired
    private SchedulerFactoryBean schedulerFactoryBean;

    public void reSchedule()

    Trigger oldTriger = schedulerFactoryBean.getScheduler().getTrigger("my_custom_trigger");

        Trigger myNewTrigger = TriggerBuilder
                .newTrigger()
                .forJob(jobDetail) // Name of your job
                .withIdentity("my_custom_trigger")
                .startAt(myNewDATE)
                .withSchedule(SimpleScheduleBuilder.simpleSchedule().withMisfireHandlingInstructionFireNow())
                .build();

    schedulerFactoryBean.getScheduler().rescheduleJob(oldTriger.getKey(), myNewTrigger);
    


Introducción rápida: https://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/scheduling.html

Si estás de acuerdo, tienes el poder dejar un enunciado acerca de qué te ha parecido este tutorial.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *