簡體   English   中英

如何使用Spring batch, Quartz, scheduler

[英]How to use Spring batch , Quartz, scheduler

我試圖弄清楚如何將 Spring Batch + Quartz 或 Scheduler 實現到以下業務邏輯。

環境:我有一個預訂數據庫表,單個客戶端可以創建多個預訂(客戶端表(一個):預訂表(許多)關系)

業務邏輯:在特定的預訂 state 中,假設客戶端在(已由管理員更新時間更新的預訂 state)+ 1 小時收到 email 的通知

我可以參考一個簡單的例子嗎?

我嘗試使用 Quartz 庫,但不太理解其用例的概念,也無法實現我計划開發的內容

Spring Batch 不支持計划作業執行。 定義 Spring 批處理作業后,您可以使用要在需要時安排其執行的庫。

如果你打算使用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);
    }

}

對於quartz,可以參考快速入門指南: http://www.quartz-scheduler.org/documentation/quartz-2.3.0/quick-start.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2025 STACKOOM.COM