执行计划的方法与cron表达自的数据库

0

的问题

我试图改变定时表达的一个特定的方法价值的定义在一个数据库。 我通常使用的弹簧说明这一点。

例如:

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

这将是确定的,如果开始后,我的计划,这些计划表达最不可改变了。 但在一开始,它应该阅读的价值从数据库,并使用它作为cron表达对这种方法。

最终目标将是,我们X号码的工作岗位数据库与各自具有自己的计划任务的表达。 该工作将有一个特定类型(typeAJob,typeBJob,等等)。 每个类型将有自己的计划的方法。

也许有人都有一个爱迪,谢谢你:)

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

最好的答案

0

我找到一个解决方案: 创建一个 ThreadPoolTaskScheduler 女巫我能用于执行一个可运行的等级:

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

我用 PostConstruct 载的具体cronExceptions从数据库和执行所有的工作在开始的我的程序。

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

你可以找到更多的信息: https://www.baeldung.com/spring-task-scheduler

2021-11-23 12:53:57

其他语言

此页面有其他语言版本

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