Skip to content

Schedule

springside edited this page Mar 12, 2012 · 7 revisions

##Ovewview 对于固定时间间隔的任务,JDK自带的Executor已足够好。

简单的Cron式定时任务,Spring自带的Scheduler也能执行,不再一定需要quartz了。

Spring的Scheduler模块还有schedule-task的namespace,可以快速配置任务执行,但我觉得它在JVM退出时只有简单的shutdown()或shutdownNow(),控制不够细腻,还是自己来控制好了,见showcase中的JdkTimerJob.java 和 SpringCronJob.java。

至于Spring的annotation式配置任务,感觉是严重的白费力了,配置总是要摆在xml里的。

Quartz更大的优势体现在保证集群中有且仅有一台服务器执行了任务,而且用JDBC持久化任务,保证任务不会被漏掉。

##Quart2.1与Spring3.1+ Quartz2.1的API让大家不再依赖Spring的封装也能在applicationContext-*.xml中配置任务了。如果要继续用,那些JobDetailBean,MethodInvokingJobDetailBean,SimpleTriggerBean和CronTriggerBean 统统在"Bean"前面加上"Factory",eg. CronTriggerFactoryBean

最后升级一下数据库(如果有集群的,用jdbc持久化的话)

Clone this wiki locally