Spustit Plánované metody s cron výraz z Databáze

0

Otázka

Snažím se změnit cron výraz konkrétní metody se hodnoty definované v Databázi. Já jsem normálně pomocí Jaře popisy pro tento.

Například:

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

To by bylo ok, pokud po začátku mého programu tyto cron výrazy počet není možné měnit. Ale na začátku, to by si měli přečíst hodnotu z Databáze a použít ji jako cron výraz pro tuto metodu.

Konečným cílem by bylo, že mám X počet pracovních Míst v Databázi, z nichž každý má své vlastní cron výrazy. Práce bude mít konkrétní typ (typeAJob, typeBJob, atd.). Každý typ bude mít svou vlastní Naplánované metody.

možná, že někdo má Idee, děkuji :)

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

Nejlepší odpověď

0

Našel jsem Řešení: Vytvoření ThreadPoolTaskScheduler čarodějnice mohu použít k provedení runnable class:

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

Používám PostConstruct načíst konkrétní cronExceptions z databáze a provádět všechny úlohy na začátku mého programu.

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

Můžete si najít více informací zde: https://www.baeldung.com/spring-task-scheduler

2021-11-23 12:53:57

V jiných jazycích

Tato stránka je v jiných jazycích

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