Quartz定时器

1、先简单的进行实现,不进行任何的配置

官网下载jar包:http://www.quartz-scheduler.org/downloads/


下载之后解压会有这些jar包

2、创建一个类Quartz

public class Quartz {
	public static void main(String[] args) throws InterruptedException {
		try {
			//通过SchedulerFactory获取任务调度器Schedule对象
			SchedulerFactory sf=new StdSchedulerFactory();
			Scheduler sched=sf.getScheduler();
			//新建一个job
			JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("job1", "group1").build();
            //定义一个触发器,执行job的规则(秒 分 时 日 月 年)
			CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1").withSchedule(CronScheduleBuilder.cronSchedule("0/10 * * * * ?"))
                    .build();
			//job和触发器装载进调度器schedule
            Date ft = sched.scheduleJob(job, trigger);
            System.out.println(job.getKey() + " has been scheduled to run at: " + ft + " and repeat based on expression: "
                    + trigger.getCronExpression());
            //启动
            sched.start();
          /* //关闭
            Thread.sleep(30000);
           sched.shutdown(true);*/
		} catch (SchedulerException e) {
			e.printStackTrace();
		}
		
	}
}
3、创建具体执行的定时任务,一个类MyJob继承Job

public class MyJob implements org.quartz.Job{
		@Override
		public void execute(JobExecutionContext arg0) throws JobExecutionException {
			System.out.println("任务执行的时间:"+new Date());
		}
}

4、运行即可看见后台每隔10s打印一次“任务执行的时间:。。。。。”

总结:这里面涉及到job、jobDetail、Trigger、Scheduler

1、job:要执行的内容,此接口只有一个方法void execute(JobExecutionContext context)

2、jobDetail:表示一个具体的可执行的调度程序,job是这个调度程序的内容,另外jobDetail还包含了这个任务调度的方案和策略

3、Trigger:代表调度参数的配置什么时候去调

4、Scheduler:代表一个调度容器,一个调度容器中可以注册多个JobDetail和Trigger,当Trigger与JobDetail组合,就可以被Scheduler容器调度了

Scheduler是一个容器,容器中有一个线程池,用来并行调度执行每个作业,容器里面盛放很多的JobDetail和Trigger,当容器启动,JobDetail会根据关联的Trigger去执行(JobDetail和Trigger组成一对),当容器关闭,所有的JobDetail停止执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值