如何使用Spring批处理、Quartz、调度程序

nlejzf6q  于 2022-12-12  发布在  Spring
关注(0)|答案(1)|浏览(136)

我试图弄清楚如何实现Spring批处理+ Quartz或调度程序到以下业务逻辑。
使用环境:我有一个预订数据库表,其中多个预订可以由单个客户端创建(客户端表(一):保留表(多个)关系)
业务逻辑:在特定的预订状态下,客户端应在(管理员更新时间已更新的预订状态)+1小时收到电子邮件通知
有没有一个简单的例子我可以参考?
我尝试使用Quartz库,但不能完全理解其用例的概念,无法实现我计划开发的内容您的文本

0s7z1bwu

0s7z1bwu1#

Spring Batch不提供调度作业执行的支持。一旦定义了Spring Batch作业,您就可以在需要时使用想要调度其执行的库。
如果您计划使用Spring Framework提供得调度功能,则可以创建一个调度方法,如下所示:

import org.springframework.batch.core.Job;
import org.springframework.batch.core.JobParameters;
import org.springframework.batch.core.JobParametersBuilder;
import org.springframework.batch.core.launch.JobLauncher;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class JobScheduler {

    private final Job job;

    private final JobLauncher jobLauncher;

    @Autowired
    public JobScheduler(Job job, JobLauncher jobLauncher) {
        this.job = job;
        this.jobLauncher = jobLauncher;
    }

    @Scheduled(cron = "*/10 * * * * *")
    public void launchJob() throws Exception {
        JobParameters jobParameters = new JobParametersBuilder().addLong("time", System.currentTimeMillis())
                .toJobParameters();

        this.jobLauncher.run(this.job, jobParameters);
    }

}

对于石英,您可以参考快速入门指南:http://www.quartz-scheduler.org/documentation/quartz-2.3.0/quick-start.html

相关问题