定时任务调度之Timer---综合使用小案例
2017-10-31 13:01
393 查看
#需求介绍:
在定时任务调度中,添加跳舞机器人和灌水机器人,两个人在任务调度中,各干各的事情,在灌水机器人灌满5L水后,灌水机器人结束工作任务,跳舞机器人休眠2秒结束任务.
#代码:
#截图:
在定时任务调度中,添加跳舞机器人和灌水机器人,两个人在任务调度中,各干各的事情,在灌水机器人灌满5L水后,灌水机器人结束工作任务,跳舞机器人休眠2秒结束任务.
#代码:
package com.haige.robot; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.TimerTask; public class DancingRobot extends TimerTask { @Override public void run() { // TODO Auto-generated method stub //获得最近一次的执行时间,并将其格式化 Calendar calendar = Calendar.getInstance(); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println("任务执行的时间是: " + sf.format(scheduledExecutionTime())); System.out.println("开始跳舞!"); } }
package com.haige.robot; import java.util.Timer; import java.util.TimerTask; public class WaterRobot extends TimerTask { private Timer timer; public WaterRobot(Timer InputTimer) { super(); timer = InputTimer; } //最大容量为5L private Integer bucketCapacity = 0; @Override public void run() { // TODO Auto-generated method stub //灌水直至桶满为止 if(bucketCapacity<5){ System.out.println("添加1L水到容器中!"); bucketCapacity ++; }else{ //水满之后就停止执行 System.out.println("已取消的任务数为 :" + timer.purge()); cancel(); System.out.println("灌水机器人已经停止执行!"); System.out.println("已取消的任务数为 :" + timer.purge()); System.out.println("注水完成,水容量为 : " + bucketCapacity + "L"); //等待两秒钟,终止timer里面的所有内容 try { Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } timer.cancel(); //取消timer实例下所有线程的执行 } } }
package com.haige.robot; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Timer; public class Executor { public static void main(String[] args) { // TODO Auto-generated method stub Timer timer = new Timer(); //获取系统当前时间 Calendar calendar = Calendar.getInstance(); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println("系统时间是: " + sf.format(calendar.getTime())); DancingRobot danceRt = new DancingRobot(); WaterRobot waterRt = new WaterRobot(timer); //dance等待water停止两秒之后也停止执行 timer.schedule(danceRt, calendar.getTime(), 2000); timer.schedule(waterRt, calendar.getTime(), 3000); } }
#截图:
相关文章推荐
- 使用 Timer 实现任务调度(定时任务)
- Java定时任务调度工具详解(2)— Timer 函数的综合应用
- Java定时任务调度工具详解之Timer篇(初级)Timer函数的综合应用
- Java并发定时任务调度之Timer和ScheduledExecutorService
- 经典案例, 每隔一分钟执行一次的定时任务, 用 thread+ while(true) 还是timer
- 使用Timer+servletListener实现web服务的任务调度
- Java 中Timer和TimerTask 定时器和定时任务使用的例子
- 定时任务:Java中Timer和TimerTask的使用
- 定时任务:Java中Timer和TimerTask的使用
- JAVA定时调度框架Quartz使用案例
- 定时任务:Java中Timer和TimerTask的使用
- Java定时任务调度工具详解之Timer篇
- Java 中Timer和TimerTask 定时器和定时任务使用的例子
- 第一节: Timer的定时任务的复习、Quartz.Net的入门使用、Aop思想的体现
- java定时任务调度的一种方式(Timer)
- 定时任务:Java中Timer和TimerTask的使用
- 使用jse的TimerTask实现在一天中的某个区间段定时任务
- 定时任务:Java中Timer和TimerTask的使用
- Java 中Timer和TimerTask 定时器和定时任务使用的例子
- 定时任务:Java中Timer和TimerTask的使用