Java定时任务的简单实现

2011-01-02 18:34:43|  分类: 软件开发 |  标签:void  timer  import  param  dateutil   |字号大中小 订阅

Spring为我们提供了很方便的定时任务处理,但是不用Spring呢?JDK也给提供了一个简单的定时任务处理,废话不多说,贴上源码

package com.yhj.timeTask;< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />

import java.util.TimerTask;

import com.yhj.common.date.DateUtil;

/**

* 要执行的定时任务

* com.yhj.timeTask.PrintTask.java

* @author 一线天色 天宇星辰 创建于 2011-1-2 下午04:24:01

*/

public class PrintTask extends TimerTask {

@Override

public void run() {

System.out.println(DateUtil.getCurrentChineseDate());

}

}

package com.yhj.timer;

import java.text.ParseException;

import java.util.Date;

import java.util.Timer;

import java.util.TimerTask;

import com.yhj.common.date.DateUtil;

import com.yhj.timeTask.PrintTask;

/**

* 计时器

* com.yhj.timer.PrintTimer.java

* @author 一线天色 天宇星辰 创建于 2011-1-2 下午04:24:49

*/

public class PrintTimer {

/**

* 计时器

*/

private  Timer timer =new Timer();

/**

* 每天执行一次

* @param task

* @param time 要求执行格式 hh:mn:ss

* @author 一线天色 天宇星辰 创建于 2011-1-2 下午04:28:11

* @throws InterruptedException

* @throws ParseException

*/

public void doEveryDay(TimerTask task,String time) throws InterruptedException, ParseException {

time=DateUtil.getCurrentDateStr().substring(0,11)+time;

long milliSeconds=DateUtil.compare(new Date(), DateUtil.praseDate(time), DateUtil.ONE_MILLI_SECOND);

Thread.sleep(Math.abs(milliSeconds));

timer.scheduleAtFixedRate(task,new Date(), DateUtil.ONE_DAY);

}

/**

* 在某个时间点执行一次

* @param task

* @param date

* @author 一线天色 天宇星辰 创建于 2011-1-2 下午04:29:29

*/

public void doOnce(TimerTask task,Date date) {

timer.schedule(task, date);

}

/**

* 每隔多长时间执行一次

* @param task

* @param milliSeconds

* @author 一线天色 天宇星辰 创建于 2011-1-2 下午04:53:54

*/

public void doWithRepeat(TimerTask task,long milliSeconds) {

timer.scheduleAtFixedRate(task,0, milliSeconds);

}

}

package com.yhj.clint;

import com.yhj.timeTask.PrintTask;

import com.yhj.timer.PrintTimer;

public class Clint {

/**

* @param args

* @author 一线天色 天宇星辰 创建于 2011-1-2 下午04:55:19

*/

public static void main(String[] args) {

new PrintTimer().doWithRepeat(new PrintTask(), 1000);

}

}

对于该调用哪个方法呢?参见JDK(如下)

方法摘要

void

cancel()
          终止此计时器,丢弃所有当前已安排的任务。

int

purge()
          从此计时器的任务队列中移除所有已取消的任务。

void

schedule(TimerTask task, Date time)
          安排在指定的时间执行指定的任务。

void

schedule(TimerTask task, Date firstTime, long period)
          安排指定的任务在指定的时间开始进行重复的固定延迟执行

void

schedule(TimerTask task, long delay)
          安排在指定延迟后执行指定的任务。

void

schedule(TimerTask task, long delay, long period)
          安排指定的任务从指定的延迟后开始进行重复的固定延迟执行

void

scheduleAtFixedRate(TimerTask task, Date firstTime, long period)
          安排指定的任务在指定的时间开始进行重复的固定速率执行

void

scheduleAtFixedRate(TimerTask task, long delay, long period)
          安排指定的任务在指定的延迟后开始进行重复的固定速率执行

JAVA定时任务的简单实现相关推荐

  1. java定时任务_定时任务最简单的3种实现方法(超好用)

    定时任务在实际的开发中特别常见,比如电商平台 30 分钟后自动取消未支付的订单,以及凌晨的数据汇总和备份等,都需要借助定时任务来实现,那么我们本文就来看一下定时任务最简单的几种实现方式. TOP 1: ...

  2. java 客户端定时任务_定时任务最简单的3种实现方法(超实用)

    定时任务在实际的开发中特别常见,比如电商平台 30 分钟后自动取消未支付的订单,以及凌晨的数据汇总和备份等,都需要借助定时任务来实现,那么我们本文就来看一下定时任务最简单的几种实现方式. TOP 1: ...

  3. java定时任务框架elasticjob详解

    这篇文章主要介绍了java定时任务框架elasticjob详解,Elastic-Job是ddframe中dd-job的作业模块中分离出来的分布式弹性作业框架.该项目基于成熟的开源产品Quartz和Zo ...

  4. Springboot2 Quartz实现JAVA定时任务的动态配置

    动态配置Quartz.没接触过定时任务的同学可以先看下此篇:JAVA定时任务实现的几种方式 文章目录 一.需求背景 1. 问题现象 2. 问题分析 3. 解决方案 二.需求背景 2.1. maven依 ...

  5. Java定时任务(一) Timer及TimerTask的案例解析及源码分析

    Java定时任务(一)  Timer及TimerTask的案例解析及源码分析 一.概述: 定时任务这个概念在Java的学习以及项目的开发中并不陌生,应用场景也是多种多样.比如我们会注意到12306网站 ...

  6. Java定时任务技术分析

    <从零打造项目>系列文章 工具 比MyBatis Generator更强大的代码生成器 ORM框架选型 SpringBoot项目基础设施搭建 SpringBoot集成Mybatis项目实操 ...

  7. Java 定时任务详解

    文章目录 单机定时任务技术选型 Timer ScheduledExecutorService Spring Task 时间轮 分布式定时任务技术选型 Quartz Elastic-Job XXL-JO ...

  8. Java定时任务(2)

    Java定时任务(2) 上次浅显的分析了Timer及TimerTask的调度原理,这里我们再来看一下另一种定时调度方式ScheduledThreadPoolExecutor的内部执行原理. Sched ...

  9. Java中的简单工厂模式(转)

    Java中的简单工厂模式 举两个例子以快速明白Java中的简单工厂模式: 女娲抟土造人 话说:"天地开辟,未有人民,女娲抟土为人."女娲需要用土造出一个个的人,但在女娲造出人之前, ...

最新文章

  1. SQL Server 2005系列教学(6) 多表操作及子查询
  2. MAC + Tomcat——部署Web项目时Tomcat启动成功,但部署的Web项目404错误
  3. c#图像处理入门(-bitmap类和图像像素值获取方法)
  4. 证书体系: PFX 文件格式解析
  5. layui使用弹出层 关闭后弹层的内容又显示出来
  6. 六界仙尊h5服务器维护多久,《六界仙尊》5月6日更新维护 公开虚天BOSS坐标
  7. 算法笔记(二)——浅析最好、最坏、平均、均摊时间分析方法
  8. 联想计算机怎样分区,怎么给联想笔记本硬盘分区【图文】
  9. 金蝶K3WISE无窗口登录
  10. QQIP纯真数据库调用全国省市地址
  11. android aoto未解锁,【求教】为什么我的解锁屏幕代码缺无法解锁屏幕
  12. 运行pixellib出现错误
  13. 基于RuoYi框架快速搭建自己的后台管理系统
  14. 华为OD机试 - 无向图染色
  15. 网易2018校园招聘编程题真题集合1魔法币
  16. 关键路径法(CPM)
  17. “美亚杯”第二届中国电子数据取证大赛答案解析(团体赛)
  18. 三峡大学计算机学院毕业答辩问题,毕业答辩会问点什么问题?
  19. PageHelper在springboot中的使用
  20. 几种常用非关系型数据库

热门文章

  1. 用人话解释比特币原理
  2. linux下DNS服务器的搭建
  3. 问题十七:怎么用ray tracing画多个球?
  4. Python思维导图框架总结
  5. 如何做好数据质量管理
  6. 解析mysqlbinlog日志_关于mysql-binlog日志解析框架
  7. 基于深度学习的数字识别GUI的设计
  8. java scanner以回车结束_大佬看了直呼内行,你当初Java刚入门是否也是这样写代码?...
  9. 青岛大学计算机科学与技术类专业,青岛大学2017年大类招生专业类代码及所含专业说明...
  10. matlab libjli.so,error while loading shared libraries: libjli.so 问题解决