java 定时任务的制作
2016-01-21 15:15
274 查看
package com.zerege.oss.daemon; import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util.TimerTask; import org.apache.log4j.Logger; import com.zerege.core.utils.DateUtil; import com.zerege.oss.daemon.task.MyTask; import com.zerege.oss.daemon.task.ReportTask; /** * 后台线程控制器 * <br>创建日期:2015-11-26 * <br><b>Copyright 2015 杭州哲瑞基信息科技有限公司 All Rights Reserved</b> * @author suncr * @since 1.0 * @version 1.0 */ public class DaemonController extends Thread{ private static final Logger log = Logger.getLogger(DaemonController.class); private long daySpan= 1000*60*60*24l; private Date time; /** * 构造函数,设定任务启动时间 */ public DaemonController() { Date d = DateUtil.getDate("17:00", "HH:mm"); Calendar c = Calendar.getInstance(); c.setTime(d); Calendar startTime = Calendar.getInstance(); startTime.set(Calendar.HOUR_OF_DAY, c.get(Calendar.HOUR_OF_DAY)); startTime.set(Calendar.MINUTE, c.get(Calendar.MINUTE)); startTime.set(Calendar.SECOND, 0); //如果配置的时间早于服务器启动时间,则第二天执行 if(startTime.before(Calendar.getInstance())){ startTime.add(Calendar.DAY_OF_MONTH, 1); } time = startTime.getTime(); log.info("任务启动时间:"+DateUtil.getDate(time,"yyyy-MM-dd HH:mm:ss")); } @Override public void run() { Timer timer = new Timer(); TimerTask task= new TimerTask(){ @Override public void run() { try { MyTask task; task = new ReportTask(); task.start(); } catch (Exception e) { e.printStackTrace(); } } }; // 以每24小时执行一次 timer.schedule(task, time, daySpan); } }
相关文章推荐
- Eclipse使用技巧之快捷键
- 排列的Java递归语言实现
- poi 操作excel 的例子
- SpringMVC和Spring的整合问题
- Java继承和多态===Java继承中方法的覆盖和重载
- Dynamic Web Module 3.1 requires Java 1.7 or newer in Eclipse
- java.util.ConcurrentModificationException 解决办法
- Java NIO 源码阅读笔记(一)
- Java 如何有效地避免OOM:善于利用软引用和弱引用
- Java继承和多态===Java super关键字
- 【一】Glide错误java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity
- java并发框架Executor学习笔记
- 浅谈Spring AOP
- 理解Java NIO
- 7 种将字符串反转的 Java 方法
- Myeclipse中package,source folder,folder区别
- webservice实现的api接口,用wsdl2java工具来生成客户端程序
- mediacodec_encode_sample.java
- Spring事务配置的五种方式
- java通过传入一个指定日期获取该日期所在周的周一至周五的日期