一、quartz学习
Java框架介绍:Quartz从入门到进阶
http://edu.yesky.com/edupxpt/233/2209233.shtml
1、例子:http://javacrazyer.iteye.com/blog/675460
http://blog.csdn.net/lotusyangjun/article/details/6450421
http://blog.csdn.net/lnara/article/details/8632324
2、官网:http://www.quartz-scheduler.org
3、和Spring一起使用
http://kevin19900306.iteye.com/blog/1397744
http://www.oschina.net/question/565065_86534
http://www.blogjava.net/zwzw-love/archive/2010/11/16/338182.html
如何将Spring管理的bean注入到job中:http://www.tuicool.com/articles/Qjyamu
4、使用经验:CronTrigger的startTime和endTime指的是表达式的生效开始时间和结束时间,而不是job的执行时间。
CronTrigger在setCronExpression()以后有个问题,就是如果表达式中定义的执行时间比当前服务器时间提前不到3个小时的时候,在执行了
scheduler.reSchedulerJob以后会马上执行,解决这个问题的方法就是在setCronExpression()以后做trigger.setStartTime(new Date())
5、dbcp的spring配置:http://www.360doc.com/content/14/0310/14/16148329_359270520.shtml
二、ScheduledThreadPoolExecutor学习
JDK5以后 Java引入了ScheduledThreadPoolExecutor,理论上已经不需要再用timer了
1、Timer和ScheduledThreadPoolExecutor的区别:http://blog.csdn.net/masterseventeen/article/details/3443114
2、使用ScheduledThreadPoolExecutor代替Timer&TimerTask:http://web.cutt.com/article/1686596369
http://dongxuan.iteye.com/blog/901689