1. 用Timer类设置定时任务.
● 延时执行首先,我们定义一个类,给它取个名字叫TimeTask,我们的定时任务,就在这个类的main函数里执行。
代码如下:
package test;
import java.util.Timer;
public class TimeTaskTest {
public static void main(String[] args){
Timer timer = new Timer();
timer.schedule(new Task(), 60 * 1000);
}
}
上面的代码实现了这样一个功能,当TimeTaskTest程序启动以后,过一分钟后执行某项任务。
很简单吧:先new一个Timer对象,然后调用它的schedule方法,这个方法有四个重载的方法,这里我们用其中一个,
public void schedule(TimerTask task,long delay) - 从程序开始以后,再过多少时间来执行定时任务
首先,第一个参数第一个参数就是我们要执行的任务。这是一个TimerTask对象,确切点说是一个实现TimerTask的类的对象,因为TimerTask是个抽象类。上面的代码里面,Task就是我们自己定义的实现了TimerTask的类,因为是在同一个包里面,所以没有显性的import进来。
Task类的代码如下
package test;
import java.util.TimerTask;
public class Task extends TimerTask {
public void run()
{
System.out.println("定时任务执行");
}
}
我们的Task必须实现TimerTask的方法run,要执行的任务就在这个run方法里面,这里,我们只让它往控制台打一行字。
第二个参数是一个long型的值。这是延迟的时间,就是从程序开始以后,再过多少时间来执行定时任务。这个long型的值是毫秒数,所以前面我们的程序里面,过一分钟后执行用的参数值就是 60 * 1000。
● 循环执行设置定时任务的时候,往往我们需要重复的执行这样任务,每隔一段时间执行一次,而上面的方法是只执行一次的,这样就用到了schedule方法的是另一个重载函数
public void schedule(TimerTask task,long delay,long period)
前两个参数就不用说什么了,最后一个参数就是间隔的时间,又是个long型的毫秒数。比如我们希望上面的任务从第一次执行后,每个一分钟执行一次,第三个参数值赋60 * 1000就ok了。
● 指定执行时间既然号称是定时任务,我们肯定希望由我们来指定任务指定的时间,显然上面的方法就不中用了,因为我们不知道程序什么时间开始运行,就没办法确定需要延时多少。没关系,schedule四个重载的方法还没用完呢。用下面这个就OK了:
public void schedule(TimerTask task,Date time)
比如,我们希望定时任务2006年7月2日0时0分执行,只要给第二个参数传一个时间设置为2006年7月2日0时0分的Date对象就可以了。有一种情况是,可能我们的程序启动的时候,已经是2006年7月3日了,这样的话,程序一启动,定时任务就开始执行了。schedule最后一个重载的方法是public void schedule(TimerTask task,Date firstTime,long period)
● j2ee中的定时任务在实际的项目中,往往定时任务需要对web工程中的资源进行操作,这样一来,用上面的单个程序的方式可能就有点力不从心了,因为很多web工程的资源它操作不到。解决的办法是,使用Servlet,把执行定时任务的那些代码放到Servlet的init()函数里就可以了。
来自:http://zhidao.baidu.com/question/83065736
Timer类的常用其他方法:
cancel()
终止此计时器,丢弃所有当前已安排的任务。
purge()
从此计时器的任务队列中移除所有已取消的任务。
schedule(TimerTask task, Date time)
安排在指定的时间执行指定的任务。
TimerTask类的常用其他方法:
cancel()
取消此计时器任务。
run()
此计时器任务要执行的操作。
scheduledExecutionTime()
返回此任务最近实际 执行的已安排 执行时间。http://blog.csdn.net/kalision/article/details/7692796
2. 定时任务框架 - Quartz
http://blog.csdn.net/yuebinghaoyuan/article/details/9045471
http://www.blogjava.net/baoyaer/articles/155645.html
相关推荐
这是Java两种功能的比较。。。里面涉及到一些使用
C语言02-Timer0-Timer1-Timer2-Timer3-Timer4测试程序(STC32G-DEMO-CODE-220311kw)C语言02-Timer0-Timer1-Timer2-Timer3-Timer4测试程序(STC32G-DEMO-CODE-220311kw)C语言02-Timer0-Timer1-Timer2-Timer3-Timer4...
// F41x_Timer0_16bitTimer.c //----------------------------------------------------------------------------- // Copyright 2006 Silicon Laboratories, Inc. // http://www.silabs.com // // Program ...
java定时任务调度Timer简单示例代码 ,
//MSP430G2553 呼吸灯演示程序 - 使用Timer_A,Up Mode, DCO SMCLK // // 介绍: 该程序利用TIMER A 的 UP模式 在P1.6脚产生PWM输出 // 将CCR0设置为1500来定义PWM的周期,利用循环不断改变CCR1的值, // 实现利用改变...
void set_timer_a0() {TACTL |= TASSEL_2+MC_1; CCR0 = 3000; CCTL0 = CCIE; //使用捕获比较中断 _EINT(); } /*----------------------------------*/ void set_timer_b0() { TBCTL |= TBSSEL_2+MC_2+...
NULL 博文链接:https://675990021.iteye.com/blog/2265945
工作中常常会有定时任务的开发需求,特别是移动端。最近笔者正好有所涉及,鉴于此,结合开发中的案例说明一下几种定时任务的 退出 。 需求说明 :定时更新正在生成的文件大小和状态【进行中、失败、完成】,如果...
// Stop watchdog timer P1DIR |= 0x01; // Set P1.0 to output direction for (;;) { volatile unsigned int i; P1OUT ^= 0x01; // Toggle P1.0 using exclusive-OR i = 50000; // Delay do (i--); ...
quartz-1.8.4 定时调度 timer quartz.jar
counter unit of lpc2138
java定时任务,每天定时执行任务,每天到这个时间点都会执行
STM8S003F3P6,例子:IAR-AD/IAR-CLOCK/IAR-TIMER/IAR-UART/IAR-URTR/
Timer和TimerTask的使用 关于java函数中timer类的相关代码 和使用
利用jdk中的timer和timertask来实现,每天定时执行的任务。
//timer1 as 8-bit auto reload mode AUXR = 0x40; //timer1 work at 1T mode TH1 = TL1 = BAUD; //115200 bps TR1 = 1; } /////////////////////////////////////////////////////////// void InitSPI() { ...
案例-使用监听器完成定时生日祝福、,一、监听器Listener 二、邮箱服务器。 1.什么是监听器? 2.监听器有哪些? 3.监听三大域对象的创建与销毁的监听器 ...c、任务调度----定时器----Timer/TimerTask
[root@rac1]# find /lib/modules -name "hangcheck-timer.ko" /lib/modules/2.6.9-42.ELsmp/kernel/drivers/char/hangcheck-timer.ko 设置模块为自动加载 su – echo "options hangcheck-timer hangcheck_tick=30 ...
主要为大家详细介绍了java定时任务Timer和TimerTask使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
用c#自定义控件绘制仿qq界面,很好的图像绘制的方法。