java中cron表示式 每10分鐘執行一次

木头左發表於2024-04-12

在Java中,可以使用Quartz框架來定義和排程任務,包括使用Cron表示式來定義任務的執行時間。下面是一個使用Quartz框架實現每10分鐘執行一次任務的示例:

新增Quartz依賴

在Maven專案中,新增以下依賴到pom.xml檔案中:

<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.3.2</version>
</dependency>

編寫任務類

建立一個Java類,實現Quartz的Job介面,並重寫execute方法,例如:

java
public class MyJob implements Job {
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        // 任務邏輯程式碼
    }
}

編寫任務排程類

建立一個Java類,使用Quartz的JobDetail和Trigger類來定義任務和觸發器,例如:

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

public class MyScheduler {
    public static void main(String[] args) throws ParseException, SchedulerException {
        // 建立排程器工廠
        SchedulerFactory schedulerFactory = new StdSchedulerFactory();
        // 建立排程器例項
        Scheduler scheduler = schedulerFactory.getScheduler();
        // 建立JobDetail例項,指定任務類和名稱
        JobDetail jobDetail = JobBuilder.newJob(MyJob.class)
                .withIdentity("myJob", "group1")
                .build();
        // 建立Trigger例項,指定觸發器表示式和名稱
        Trigger trigger = TriggerBuilder.newTrigger()
                .withIdentity("myTrigger", "group1")
                .withSchedule(CronScheduleBuilder.cronSchedule("0 0/10 * * * ?")) // 每10分鐘執行一次
                .build();
        // 將JobDetail和Trigger繫結,並新增到排程器中
        scheduler.scheduleJob(jobDetail, trigger);
        // 啟動排程器
        scheduler.start();
    }
}

在上述程式碼中,使用CronScheduleBuilder的cronSchedule方法來建立一個每10分鐘執行一次的Cron表示式。然後,將JobDetail和Trigger繫結,並新增到排程器中。最後,啟動排程器即可。

相關文章