Cron 表达式是一种用于表示定时任务的语法规则,它由 6 个字段组成,分别表示分钟、小时、日、月、周几、年。其中,周几和年是可选的。

'0 0/5 * * * ?'

这个 Cron 表达式的含义是每隔 5 分钟触发一次任务。具体解释如下:

  • 第一个字段表示分钟,取值范围为 0~59,这里是 0,表示每小时的 0 分执行一次任务。
  • 第二个字段表示小时,取值范围为 0~23,这里是 0/5,表示每隔 5 个小时执行一次任务。
  • 第三个字段表示日,取值范围为 1~31,这里是 *,表示每天都执行任务。
  • 第四个字段表示月,取值范围为 1~12,这里是 *,表示每个月都执行任务。
  • 第五个字段表示周几,取值范围为 0~6,0 表示星期天,1~6 表示周一到周六,这里是 '?', 表示不指定,与第三个字段不能同时出现。
  • 第六个字段表示年,取值范围为 1970~2099,这里是 *,表示每年都执行任务,与周几字段不能同时出现。

Java 中可以使用 Quartz 框架来实现定时任务的调度,其中就可以使用 Cron 表达式来设置任务的执行时间。下面是一个示例:

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;

public class CronExample {
    public static void main(String[] args) throws SchedulerException {
        SchedulerFactory schedulerFactory = new StdSchedulerFactory();
        Scheduler scheduler = schedulerFactory.getScheduler();

        JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("myJob").build();

        Trigger trigger = TriggerBuilder.newTrigger()
                .withIdentity("myTrigger")
                .withSchedule(CronScheduleBuilder.cronSchedule("0 0/5 * * * ?"))
                .build();

        scheduler.scheduleJob(job, trigger);
        scheduler.start();
    }
}

class MyJob implements Job {
    public void execute(JobExecutionContext context) throws JobExecutionException {
        System.out.println("Hello, Quartz!");
    }
}

这个示例中,我们设置了一个每隔 5 分钟执行一次的定时任务,它的具体执行内容在 MyJob 类中实现。Quartz 框架会自动根据 Cron 表达式来调度任务的执行时间。

Java 定时任务:Cron 表达式详解及 Quartz 实现

原文地址: https://www.cveoy.top/t/topic/m3J4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录