Veritabanından cron ifadesiyle zamanlanmış yöntemleri yürütme

0

Soru

Belirli bir yöntemin cron ifadesini bir Veritabanında tanımlanan değerle değiştirmeye çalışıyorum. Normalde bunun için Bahar ek açıklamaları kullanıyorum.

örneğin:

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

Programımın başlamasından sonra bu cron ifadelerinin artık değiştirilmemesi sorun olmaz. Ancak başlangıçta, veritabanından değeri okumalı ve bu yöntem için cron ifadesi olarak kullanmalıdır.

Nihai hedef, Veritabanında her biri kendi cron ifadelerine sahip olan X sayıda İşim olması olacaktır. İşlerin belirli bir türü olacaktır (typeAJob, typeBJob, vb.). Her türün kendi Zamanlanmış yöntemi olacaktır.

belki birinin bir Fikri vardır, teşekkür ederim :)

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

En iyi cevabı

0

Bir Çözüm buldum : Bir oluşturma ThreadPoolTaskScheduler çalıştırılabilir bir sınıfı yürütmek için kullanabileceğim cadı:

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

Kullanıyorum PostConstruct veritabanından belirli cronexception'ları yüklemek ve programımın başlangıcında tüm işleri yürütmek için.

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

Daha fazla bilgiyi burada bulabilirsiniz: https://www.baeldung.com/spring-task-scheduler

2021-11-23 12:53:57

Diğer dillerde

Bu sayfa diğer dillerde

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