quartz 每天执行一次
时间: 2023-09-26 15:11:36 浏览: 154
spring2.0 Quartz 执行每天定时任务 建议用quartz-all-1.8.4.jar更稳定,兼容性更好
可以使用 Quartz 框架中的 CronTrigger 实现每天执行一次的定时任务。CronTrigger 可以根据 Cron 表达式来配置任务执行的时间,其中,Cron 表达式有七个字段,分别表示秒、分、时、日、月、周、年。具体实现步骤如下:
1. 创建 Job 类,实现 org.quartz.Job 接口,在 execute() 方法中编写任务执行的逻辑。
2. 创建 Scheduler 对象,使用 StdSchedulerFactory.getDefaultScheduler() 获取默认的 Scheduler 实例。
3. 创建 JobDetail 对象,指定 Job 类,在 JobDataMap 中设置任务需要的参数。
4. 创建 CronTrigger 对象,指定 Cron 表达式。
5. 将 JobDetail 和 CronTrigger 对象注册到 Scheduler 中。
6. 启动 Scheduler。
完整示例代码如下:
```
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import java.util.Date;
public class DailyJob implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
// 任务逻辑
System.out.println("任务执行时间:" + new Date());
}
public static void main(String[] args) throws SchedulerException {
// 创建 Scheduler 对象
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
// 创建 JobDetail 对象
JobDetail jobDetail = JobBuilder.newJob(DailyJob.class)
.withIdentity("dailyJob", "group1")
.usingJobData("param", "value")
.build();
// 创建 CronTrigger 对象
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("dailyTrigger", "group1")
.withSchedule(CronScheduleBuilder.cronSchedule("0 0 0 * * ?"))
.build();
// 注册 JobDetail 和 Trigger 到 Scheduler 中
scheduler.scheduleJob(jobDetail, trigger);
// 启动 Scheduler
scheduler.start();
}
}
```
上述代码中的 Cron 表达式 "0 0 0 * * ?" 表示每天零点执行任务。可以根据实际需求修改 Cron 表达式来定制任务执行的时间。
阅读全文