Java 定时任务
2017-01-20 10:45
309 查看
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; /** * 设置开始时间开启任务,间隔时间执行任务,结束时间关闭任务 * * @author * */ public class ScheduldeExecutorTest { //线程池能按时间计划来执行任务,允许用户设定计划执行任务的时间,int类型的参数是设定 //线程池中线程的最小数目。当任务较多时,线程池可能会自动创建更多的工作线程来执行任务 //此处用Executors.newSingleThreadScheduledExecutor()更佳。 public ScheduledExecutorService scheduExec = Executors.newScheduledThreadPool(1); //启动计时器 public void lanuchTimer(){ Runnable task = new Runnable() { public void run() { throw new RuntimeException(); } }; scheduExec.scheduleWithFixedDelay(task, 1000*5, 1000*10, TimeUnit.MILLISECONDS); } //添加新任务 public void addOneTask(){ Runnable task = new Runnable() { public void run() { //获取本系统时间,如果大于设定的时间就关闭服务 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 String nowDate=df.format(new Date()); int c=timeCompare("2017-01-20 10:42:00", nowDate); if(0>c){ System.out.println(nowDate+"时间到,关闭任务!"); scheduExec.shutdown(); }else{ System.out.println("==来了"); } } }; scheduExec.scheduleWithFixedDelay(task, 1000*1, 2000, TimeUnit.MILLISECONDS); } /*时间比大小*/ public static int timeCompare(String t1,String t2){ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar c1=Calendar.getInstance(); Calendar c2=Calendar.getInstance(); try { c1.setTime(formatter.parse(t1)); c2.setTime(formatter.parse(t2)); } catch (Exception e) { e.printStackTrace(); } int result=c1.compareTo(c2); return result; } public static void main(String[] args) throws Exception { //开启 ScheduldeExecutorTest test = new ScheduldeExecutorTest(); test.lanuchTimer(); //Thread.sleep(1000*5);//5秒钟之后添加新任务 test.addOneTask(); } }
相关文章推荐
- java中获取当前日期和时间的方法
- jdk的安装后对环境变量的配置
- spring boot 实际应用(三)发送邮件实现
- java中特殊的String类型(深入)
- spring boot 实际应用(四)log4j2 整合
- SpringMVC中使用Interceptor拦截器顺序等
- 官网不提供直接下载spring的jar提倡通过maven等jar管理工具下载
- Spring+MyBatis实现数据库读写分离方案
- 2017《Java技术》预备作业01
- spring中的context:include-filter和context:exclude-filter的区别
- java知识点-2
- elasticsearch java update 更新成功
- Myeclipse+MySQL+JSP登陆功能
- java知识点-1
- Rxjava 详解
- java开发中的数据库连接池工具
- spring3 升级到 spring4 要注意该的地方
- Spring 简单入门实例
- SpringMVC 常用注解(1)
- 关于Spring IOC (依赖注入)你需要知道的一切