使用scheduled 跑定时任务后台多次调用(3次)
spring-job.xml
<task:scheduled-tasks>
<!--数据核录业务start 凌晨两点触发-->
<task:scheduled ref="missionMainService" method="addDataCheckTask" cron="0 00 02 * * ?"/>
<!--民生诉求任务start-->
<task:scheduled ref="missionMainService" method="addMssqTask" cron="0 00 02 * * ?"/>
<!--矛盾事件任务-->
<task:scheduled ref="missionMainService" method="addEventTask" cron="0 00 02 * * ?"/>
<!--
测试定时任务
<task:scheduled ref="missionMainService" method="test" cron="0/5 * * * * ?"/>-->
</task:scheduled-tasks>
spring-mvc.xml
<import resource="spring-job.xml"/>
web.xml
<servlet>
<description>spring mvc servlet</description>
<servlet-name>springMvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<description>spring mvc 配置文件</description>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring-mvc.xml</param-value>
//这里spring-mvc.xml 加载一次
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring-*.xml</param-value>
//这里spring-mvc.xml 加载第二次,spring-job.xml加载一次。spring-mvc.xml引入了spring-job.xml所以spring-job.xml随着spring-mvc.xml文件加载了2次,共三次
</context-param>
原因:
spring-job.xml这个配置文件被多次加载。
1.再spring-mvc.xml配置文件中引入,而spring-mvc.xml这个文件在web.xml的配置文件2次 ,所以导致spring-job.xml加载2次
2.在web.xml的配置文件2次 ,所以导致spring-job.xml加载1次