Vykonanie Plánovaných metódy s cron termín z Databázy

0

Otázka

Snažím sa zmeniť cron výraz určitej metódy s hodnotou definované v Databáze. Som normálne používajú Jar komentáre pre tento.

Napríklad:

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

To by bolo ok, ak po začiatku mojej program tieto cron výrazy počítať, nie je možné zmeniť už. Ale na začiatku, to by si mali prečítať hodnoty z Databázy a použiť ju ako cron výraz pre túto metódu.

Konečným cieľom by malo byť, že mám X počet pracovných Miest v Databáze, z ktorých každý má svoje vlastné cron výrazy. Pracovných miest, bude mať špecifický typ (typeAJob, typeBJob, atď.). Každý typ bude mať svoje vlastné Naplánované metóda.

možno, že niekto má táto myšlienka, ďakujem :)

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

Najlepšiu odpoveď

0

Našiel som Riešenie: Vytvorenie ThreadPoolTaskScheduler čarodejnice môžem použiť na vykonanie runnable triedy:

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

Používam PostConstruct ak chcete načítať špecifické cronExceptions z databázy a vykonanie všetkých pracovných miest na začiatok môjho 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 nájsť viac informácií tu: https://www.baeldung.com/spring-task-scheduler

2021-11-23 12:53:57

V iných jazykoch

Táto stránka je v iných jazykoch

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