Esecuzione Pianificata metodi con cron espressione da Database

0

Domanda

Sto cercando di cambiare il cron espressione di un metodo specifico con il valore definito in un Database. Io normalmente utilizzo di Spring annotazioni per questo.

Per Esempio:

@Scheduled(cron = "cronExpression from Database")
public void typeAJob(){
...
}

Sarebbe ok se dopo l'inizio del mio programma di questi cron espressioni di conte non può più essere modificato. Ma all'inizio, si dovrebbe leggere il valore dal Database e di utilizzarlo come cron espressione per questo metodo.

L'obiettivo finale sarebbe, che ho X numero di posti di Lavoro nel Database con ciascuno che ha il suo cron espressioni. I lavori avranno un tipo specifico (typeAJob, typeBJob, etc.). Ogni tipo ha il suo proprio metodo Programmato.

forse qualcuno ha Idee, grazie :)

cron database java scheduled-tasks
2021-11-22 15:50:04
1

Migliore risposta

0

Ho trovato una Soluzione: La creazione di un ThreadPoolTaskScheduler strega che posso utilizzare per eseguire un eseguibile di classe:

    public ExportJobService exportScheduler(ThreadPoolTaskScheduler threadPoolTaskScheduler) {
        threadPoolTaskScheduler.setPoolSize(5);
        threadPoolTaskScheduler.setThreadNamePrefix("ExportJobScheduler");
        return new ExportJobService(threadPoolTaskScheduler);
    }

Io uso PostConstruct a carico di specifiche cronExceptions dal database e di eseguire tutti i lavori all'inizio del mio programma.

 @PostConstruct
    public void runJobs() {
        repository.findAll()
                  .stream()
                  .map(this::buildJob)
                  .forEach(job -> {
                      var cronTrigger = new CronTrigger(job.getCronExpression());
                      taskScheduler.schedule(job, cronTrigger);
                  });
    }

Si possono trovare maggiori informazioni qui: https://www.baeldung.com/spring-task-scheduler

2021-11-23 12:53:57

In altre lingue

Questa pagina è in altre lingue

Русский
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................