Exécution Prévue méthodes avec cron expression à partir de la Base de données

0

La question

Je suis en train de modifier l'expression cron d'une méthode spécifique avec la valeur définie dans une Base de données. Je suis normalement à l'aide de Printemps annotations pour cela.

Par Exemple:

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

Il serait ok si après le début de mon programme de ces cron expressions compter non plus être modifié. Mais au début, il faut lire la valeur de la Base de données et l'utiliser comme une expression cron pour cette méthode.

L'objectif final serait, que j'ai X nombre d'Emplois dans la Base de données avec chacun d'avoir son propre cron expressions. L'emploi d'un type spécifique (typeAJob, typeBJob, etc.). Chaque type a son propre méthode Planifié.

peut-être que quelqu'un a une Idee, merci :)

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

La meilleure réponse

0

J'ai trouvé une Solution: La création d'un ThreadPoolTaskScheduler sorcière que je peux utiliser pour exécuter une classe runnable:

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

J'utilise PostConstruct pour charger le spécifique cronExceptions à partir de la base de données et exécuter tous les travaux au début de mon programme.

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

Vous pouvez trouver plus d'informations ici: https://www.baeldung.com/spring-task-scheduler

2021-11-23 12:53:57

Dans d'autres langues

Cette page est dans d'autres langues

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