我找到一个解决方案:
创建一个 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