第一次接手需求写的小项目,过程也有点坎坷,以此记录总结编码过程中遇到的问题。
项目背景:本次写的是一个小模块,主要为客户端,作用是每隔5分钟从数据库拉取数据传送至服务端。本次项目采用的是spring3+Quartz+JdbcTemplate+JSONArray+RPCService。以下分为几个模块详述。
项目思路:将本次需求分为三个模块:定时器+查询数据+客户端发送。
一、定时器
由于本项目整体采用的spring的框架,所以本次定时器采用的是Spring+Quartz的模式。Quartz配合cron表达式,能够执行每隔一段时间/定点执行等强大的定时功能。好了,我们来看定时器的编写。Quartz分为配置+任务方法两块,配置在spring的xml文件中编写,具体的任务写在具体类的execute方法中。
首先,我们创建一个spring的配置文件:applicationContext.xml,在里面写好定时器的要执行的任务、触发器等内容;
applicationContext.xml
Task.java
以上Quartz的编写就完成了,接下来是运行中可能出现的问题:
1.无法执行定时器任务
1)可能整个项目是个Web项目,需要Tomcat启动后载入spring容器才能执行定时器任务;
2)可能需要需要先启动其他方法才能执行定时器任务;
3)可能IDEA的Server配置有问题,打开Run/DebugConfigurations,TomcatServer-Deployment,将下面war exploded文件改为External Source下项目target的项目.war文件;
2.定时器多次执行