定时任务对于系统中的应用和作用不言而喻,JAVA实现定时任务的方式比较多,这里文章我们主要看第5种方式。
- 自己在Thread类中利用while循环实现,不过太太简陋,不适合复杂的业务。
- 利用JDK自带的Timer和TimerTask实现,不过还是太简陋,不适合复杂的业务。
- 利用并发包里面的ScheduleExecutorService接口的实现类来搞定。
- Spring3.0以后自带的task xml配置的方式
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd"> <task:scheduled-tasks> <task:scheduled ref="taskJob" method="job1" cron="0 * * * * ?"/>
</task:scheduled-tasks>
```
- Spring和Quartz的整合,也可单独使用Quartz。
关于Quartz这里又有一个pdf写的很不错,贴出地址Quartz Job Scheduling Framework 中文版 V1.0.0.pdf
主要看一张图片对应一下类和图片中的角色就整体把握了框架
但如果只是简单的跑个任务其实spring升级到3后已经自带任务调度器了,相比之下Spring task无论是理解还是使用都简单很多。但是Quartz有线程和线程管理以及集群等高级特性,所以大家可以自行选择了。不过一般情况下,觉得SpringTask足够了。 Spring Task提供两种方式进行配置,注解和配置文件。使用注解虽然简单,不用配置xml,但是相对于修改比较频繁的任务来说,打包编译的过程也是挺麻烦的,建议使用配置文件实现。