Quartz定时执行程序

本文介绍了Quartz定时任务框架的基本概念,包括Scheduler计划者、CronTrigger触发条件、JobDetail任务细节及Job具体执行任务等核心组件。通过示例展示了如何创建一个具体的任务类并实现Job接口,在execute方法中编写定时执行的代码。此外还提供了启动定时任务的示例代码。
摘要由CSDN通过智能技术生成

Quartz是一个定时任务执行的框架。

几个概念:

    Scheduler :计划者
    CronTrigger :触发条件
    JobDetail :任务的细节
    Job :具体执行的任务


1 创建具体任务:编写一个类实现Job接口,把定时执行的任务代码写在该类的execute方法中

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class QuartzTest implements Job {

	private static final Logger logger=LogManager.getLogger(QuartzTest.class);
	
	@Override
	public void execute(JobExecutionContext arg0) throws JobExecutionException {
		//定时任务代码
	}

}

2启动定时任务,见示例代码

//设定loadOnStartup=1,网站启动的时候立即执行
@WebServlet(value="/QuartzInitServlet", loadOnStartup=1)
public class QuartzInitServlet  extends HttpServlet {
	
	private static final Logger logger=LogManager.getLogger(QuartzInitServlet.class);
	
	@Override
	public void init() throws ServletException {
		super.init();
		
		try{
			//计划者
			Scheduler  scheduler=StdSchedulerFactory.getDefaultScheduler();
			//任务的细节,具体执行的任务在QuartzTest类中
			JobDetail job=JobBuilder.newJob(QuartzTest.class).build();
			//定时出发条件
			CronScheduleBuilder cronScheduleBuidler=
					CronScheduleBuilder.cronSchedule("5/10 51 14 * * ?").inTimeZone(TimeZone.getTimeZone("GMT+08:00"));//注意设置时区
			CronTrigger trigger=TriggerBuilder.newTrigger().withSchedule(cronScheduleBuidler).build();
			scheduler.scheduleJob(job,trigger);
			//启动
			scheduler.start();
		}
		catch(Throwable e){
			logger.error("定时任务出错",e);
		}
	}
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值