html5中文学习网

您的位置: 首页 > 网络编程 > java教程 » 正文

spring中定时任务taskScheduler的详细介绍_java_

[ ] 已经帮助:人解决问题

前言7KNHTML5中文学习网 - HTML5先行者学习网

众所周知在spring 3.0版本后,自带了一个定时任务工具,而且使用简单方便,不用配置文件,可以动态改变执行状态。也可以使用cron表达式设置定时任务。7KNHTML5中文学习网 - HTML5先行者学习网

被执行的类要实现Runnable接口7KNHTML5中文学习网 - HTML5先行者学习网

TaskScheduler接口7KNHTML5中文学习网 - HTML5先行者学习网
7KNHTML5中文学习网 - HTML5先行者学习网

TaskScheduler是一个接口,TaskScheduler接口下定义了6个方法7KNHTML5中文学习网 - HTML5先行者学习网

7KNHTML5中文学习网 - HTML5先行者学习网
7KNHTML5中文学习网 - HTML5先行者学习网

1、schedule(Runnable task, Trigger trigger);7KNHTML5中文学习网 - HTML5先行者学习网
7KNHTML5中文学习网 - HTML5先行者学习网

指定一个触发器执行定时任务。可以使用CronTrigger来指定Cron表达式,执行定时任务7KNHTML5中文学习网 - HTML5先行者学习网

 CronTrigger t = new CronTrigger("0 0 10,14,16 * * ?"); taskScheduler.schedule(this, t);

2、schedule(Runnable task, Date startTime);7KNHTML5中文学习网 - HTML5先行者学习网
7KNHTML5中文学习网 - HTML5先行者学习网

指定一个具体时间点执行定时任务,可以动态的指定时间,开启任务。只执行一次。(比Timer好用多了。早发现这接口就好了。。。)7KNHTML5中文学习网 - HTML5先行者学习网
7KNHTML5中文学习网 - HTML5先行者学习网

3、scheduleAtFixedRate(Runnable task, long period);7KNHTML5中文学习网 - HTML5先行者学习网
7KNHTML5中文学习网 - HTML5先行者学习网

立即执行,循环任务,指定一个执行周期(毫秒计时)7KNHTML5中文学习网 - HTML5先行者学习网
7KNHTML5中文学习网 - HTML5先行者学习网

PS:不管上一个周期是否执行完,到时间下个周期就开始执行7KNHTML5中文学习网 - HTML5先行者学习网
7KNHTML5中文学习网 - HTML5先行者学习网

4、scheduleAtFixedRate(Runnable task, Date startTime, long period);7KNHTML5中文学习网 - HTML5先行者学习网
7KNHTML5中文学习网 - HTML5先行者学习网

指定时间开始执行,循环任务,指定一个间隔周期(毫秒计时)7KNHTML5中文学习网 - HTML5先行者学习网
7KNHTML5中文学习网 - HTML5先行者学习网

PS:不管上一个周期是否执行完,到时间下个周期就开始执行7KNHTML5中文学习网 - HTML5先行者学习网
7KNHTML5中文学习网 - HTML5先行者学习网

5、scheduleWithFixedDelay(Runnable task, long delay);7KNHTML5中文学习网 - HTML5先行者学习网
7KNHTML5中文学习网 - HTML5先行者学习网

立即执行,循环任务,指定一个间隔周期(毫秒计时)7KNHTML5中文学习网 - HTML5先行者学习网
7KNHTML5中文学习网 - HTML5先行者学习网

PS:上一个周期执行完,等待delay时间,下个周期开始执行7KNHTML5中文学习网 - HTML5先行者学习网
7KNHTML5中文学习网 - HTML5先行者学习网

6、scheduleWithFixedDelay(Runnable task, Date startTime, long delay);7KNHTML5中文学习网 - HTML5先行者学习网
7KNHTML5中文学习网 - HTML5先行者学习网

指定时间开始执行,循环任务,指定一个间隔周期(毫秒计时)7KNHTML5中文学习网 - HTML5先行者学习网
7KNHTML5中文学习网 - HTML5先行者学习网

PS:上一个周期执行完,等待delay时间,下个周期开始执行7KNHTML5中文学习网 - HTML5先行者学习网

TaskScheduler下有五个实现类7KNHTML5中文学习网 - HTML5先行者学习网

7KNHTML5中文学习网 - HTML5先行者学习网
7KNHTML5中文学习网 - HTML5先行者学习网

1、ConcurrentTaskScheduler7KNHTML5中文学习网 - HTML5先行者学习网
7KNHTML5中文学习网 - HTML5先行者学习网

以当前线程执行任务。如果任务简单,可以直接使用这个类来执行。快捷方便。7KNHTML5中文学习网 - HTML5先行者学习网
7KNHTML5中文学习网 - HTML5先行者学习网

PS:这是单线程运行7KNHTML5中文学习网 - HTML5先行者学习网

public class LocTest implements Runnable { private ConcurrentTaskScheduler tpts = new ConcurrentTaskScheduler(); private void start() {tpts.schedule(this, new Date()); } public void run() {Thread ct = Thread.currentThread();System.out.println("current id:"+ct.getId());System.out.println("current name:"+ct.getName()); } public static void main(String[] args) {new LocTest().start(); }}

2、DefaultManagedTaskScheduler7KNHTML5中文学习网 - HTML5先行者学习网
7KNHTML5中文学习网 - HTML5先行者学习网

以当前线程执行任务,这是ConcurrentTaskScheduler的子类,添加了JNDI的支持。和ConcurrentTaskScheduler一样的用法,需要使用JNDI可以单独设置7KNHTML5中文学习网 - HTML5先行者学习网
7KNHTML5中文学习网 - HTML5先行者学习网

3、ThreadPoolTaskScheduler7KNHTML5中文学习网 - HTML5先行者学习网
7KNHTML5中文学习网 - HTML5先行者学习网

TaskScheduler接口的默认实现类,多线程定时任务执行。可以设置执行线程池数(默认一个线程)。7KNHTML5中文学习网 - HTML5先行者学习网
7KNHTML5中文学习网 - HTML5先行者学习网

PS:7KNHTML5中文学习网 - HTML5先行者学习网

  1. 使用前必须得先调用initialize() 【初始化方法】7KNHTML5中文学习网 - HTML5先行者学习网
  2. shutDown()方法,执行完后可以关闭线程
public class LocTest implements Runnable {private ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();private void start() {taskScheduler.setPoolSize(10);//必须得先初始化,才能使用taskScheduler.initialize();taskScheduler.schedule(this, new Date());}public void run() {Thread ct = Thread.currentThread();System.out.println("current id:"+ct.getId());System.out.println("current name:"+ct.getName());}public static void main(String[] args) {new LocTest().start();}}

4、TimerManagerTaskScheduler7KNHTML5中文学习网 - HTML5先行者学习网

这个没有使用到,就没具体了解,有时间再补充。有了解的欢迎来补充。7KNHTML5中文学习网 - HTML5先行者学习网

总结7KNHTML5中文学习网 - HTML5先行者学习网

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。7KNHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助