成都创新互联网站制作重庆分公司

java定时运行代码,定时 java

Java下定时执行任务的方法有哪些?

1)java.util.Timer

创新互联"三网合一"的企业建站思路。企业可建设拥有电脑版、微信版、手机版的企业网站。实现跨屏营销,产品发布一步更新,电脑网络+移动网络一网打尽,满足企业的营销需求!创新互联具备承接各种类型的做网站、成都网站设计项目的能力。经过十余年的努力的开拓,为不同行业的企事业单位提供了优质的服务,并获得了客户的一致好评。

这个方法应该是最常用的,不过这个方法需要手工启动你的任务:

Timer timer=new Timer();

timer.schedule(new ListByDayTimerTask(),10000,86400000);

这里的ListByDayTimerTask类必须extends TimerTask里面的run()方法。

2)ServletContextListener

这个方法在web容器环境比较方便,这样,在web server启动后就可以

自动运行该任务,不需要手工操作。

将ListByDayListener implements ServletContextListener接口,在

contextInitialized方法中加入启动Timer的代码,在contextDestroyed

方法中加入cancel该Timer的代码;然后在web.xml中,加入listener:

详细教程请参考:

在Java中如何设置一个定时任务的代码应该怎么写?

指定定时任务的代码如下:

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)

既然号称是定时任务,我们肯定希望由我们来指定任务指定的时间,显然上面的方法就不中用了,因为我们不知道程序什么时间开始运行,就没办法确定需要延时多少.没关系,schedule四个重载的方法还没用完呢.用下面这个就OK了。

Java 如何实现这样的定时任务

JDK中,定时器任务的执行需要两个基本的类:

java.util.Timer;

java.util.TimerTask;

要运行一个定时任务,最基本的步骤如下:

1、建立一个要执行的任务TimerTask。

2、创建一个Timer实例,通过Timer提供的schedule()方法,将 TimerTask加入到定时器Timer中,同时设置执行的规则即可。

当程序执行了Timer初始化代码后,Timer定时任务就会按照设置去执行。

Timer中的schedule()方法是有多种重载格式的,以适应不同的情况。该方法的格式如下:

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)

安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。

Timer是线程安全的,此类可扩展到大量同时安排的任务(存在数千个都没有问题)。其所有构造方法都启动计时器线程。可以调用cancel() 终止此计时器,丢弃所有当前已安排的任务。purge()从此计时器的任务队列中移除所有已取消的任务。此类不提供实时保证:它使用 Object.wait(long) 方法来安排任务。

TimerTask是一个抽象类,由 Timer 安排为一次执行或重复执行的任务。它有一个抽象方法run()----计时器任务要执行的操作。因此,每个具体的任务类都必须继承TimerTask类,并且重写run()方法。另外它还有两个非抽象的方法:

boolean cancel()

取消此计时器任务。

long scheduledExecutionTime()

返回此任务最近实际 执行的安排 执行时间。


网站栏目:java定时运行代码,定时 java
当前地址:http://cxhlcq.com/article/hcphch.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部