Java中的定时器

常见的定时器分两大块:
1、Timer 在java.util包中提供的定时器
2、quartz 第三方提供的
应用场景:
1、数据监测(实时监控),疫情相关数据的监控显示
2、认证周期提醒,外包的项目卖给客户(按年收费)
Timer定时器示例
指定开始时间

/**
	 * 指定开始时间
	 */
	public static void method() {
		//1、创建Timer对象用于定义定时器的任务及开始时间、周期
		Timer timer = new Timer();
		//创建匿名内部类,定义任务
		TimerTask task = new TimerTask() {
			int count = 1;
			@Override
			public void run() {
				System.out.println("定时任务执行中"+(count++));	
			}
		};
		//2、任务调度
		timer.schedule(task, new Date());
	}

指定开始时间及执行周期

/**
	 * 指定开始时间及执行周期
	 */
	public static void method2() {
		//1、创建Timer对象用于定义定时器的任务及开始时间、周期
		Timer timer = new Timer();
		//创建匿名内部类,定义任务
		TimerTask task = new TimerTask() {
			int count = 1;
			@Override
			public void run() {
				System.out.println("定时任务执行中"+(count++));	
			}
		};
		//2、任务调度
		timer.schedule(task, new Date(), 1000);
	}
//1、创建Timer对象用于定义定时器的任务及开始时间、周期
		Timer timer = new Timer();
		//创建匿名内部类,定义任务
		TimerTask task = new TimerTask() {
			int count = 1;
			@Override
			public void run() {
				System.out.println("定时任务执行中"+(count++));	
			}
		};
		//2、任务调度
		timer.schedule(task, 2000, 1000);

quartz定时器
关键字
1、创建一个SchedulerFactory对象用于生产Scheduler对象 Scheduler
2、创建调度所需要的任务 JobDetail
3、指定开始的时间和执行周期 Trigger
示例

//1.创建工厂对象,用于生产Scheduler对象
		StdSchedulerFactory factory = new StdSchedulerFactory();
		//2.生产Scheduler对象
		Scheduler scheduler = factory.getScheduler();
		scheduler.start();
		//2.1创建任务(JobDetail),具体的任务需要自定义类实现Job接口
		JobDetail job = JobBuilder.newJob(Task.class).withIdentity("task1").build();
		//2.2定义开始的时间及周期
		Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1")
		.withSchedule(SimpleScheduleBuilder.simpleSchedule()
				.withIntervalInSeconds(1)
				//.withRepeatCount(3)
				.repeatForever()
				)
		.startNow()
		.build();
		//3.指定要执行的任务及时间、周期
		scheduler.scheduleJob(job, trigger);
		
	}

Timer和Quartz的区别
1、Timer是java.util包自带的定时器,quartz是一个第三方提供的定时器
2、Timer的任务是通过创建TimerTask子类进行实现,quartz则必须要新建一个class文件实现Job接口重写execute方法定义任务
3、Timer只能控制执行的周期及开始时间,而quartz可以灵活、准确的控制日期节点以及执行次数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值