Cr
on表达式是用来描述定时任务执行时间的字符串,它由6个部分组成,分别表示秒、分钟、小时、日、月、周几。普通的
Cr
on表达式支持简单的时间设置,如每5分钟执行一次任务。但是有时候需要更加复杂的时间设置,比如每周的周一、周三、周五,在上午10点到下午3点之间执行任务。这时就需要使用
Cr
on表达式的高级语法来实现。
以下是一个使用Quartz框架的Java示例代码,通过
Cr
on表达式配置定时任务,并设置复杂执行时间:
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
public class CronComplexExample {
public static void main(String[] args) throws SchedulerException {
// 创建Scheduler工厂实例
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
// 从工厂中获取Scheduler实例
Scheduler scheduler = schedulerFactory.getScheduler();
// 定义JobDetail
JobDetail jobDetail = JobBuilder.newJob(HelloJob.class)
.withIdentity("helloJob","group1")
.build();
// 定义Trigger开始时间
long startTime = System.currentTimeMillis();
startTime += 10000; // 延迟10秒开始
// 定义Cron表达式,每周一、周三、周五的上午10点到下午3点之间执行
String cronExpression = "0 0 10,11,12,13,14,15 ? * MON,WED,FRI *";
// 构建触发器Trigger
CronTrigger trigger = TriggerBuilder.newTrigger()
.withIdentity("cronTrigger","group1")
.startAt(new Date(startTime))
.withSchedule(CronScheduleBuilder.cronSchedule(cronExpression))
.build();
// 将JobDetail和Trigger注册到Scheduler中
scheduler.scheduleJob(jobDetail, trigger);
// 启动Scheduler
scheduler.start();
public static