Java 多次在Spring MVC中执行Quarts调度程序
我在MVC中使用Quarts进行任务调度,我的问题是,它会对每个任务执行多次(两次)。请在下面找到配置和Java文件 文件web.xml 输出/日志Java 多次在Spring MVC中执行Quarts调度程序,java,spring,spring-mvc,quartz-scheduler,scheduling,Java,Spring,Spring Mvc,Quartz Scheduler,Scheduling,我在MVC中使用Quarts进行任务调度,我的问题是,它会对每个任务执行多次(两次)。请在下面找到配置和Java文件 文件web.xml 输出/日志 2014-05-05 15:06:53,462 - DEBUG [ FixedDelayWorker - work() - 9 ] - org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-10 has began working. 2014-05-05 1
2014-05-05 15:06:53,462 - DEBUG [ FixedDelayWorker - work() - 9 ] - org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-10 has began working.
2014-05-05 15:06:53,462 - DEBUG [ FixedDelayWorker - work() - 10 ] - working...
2014-05-05 15:06:53,462 - DEBUG [ FixedDelayWorker - work() - 11 ] - org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-10 has completed work.
2014-05-05 15:06:54,881 - DEBUG [ FixedDelayWorker - work() - 9 ] - org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-10 has began working.
2014-05-05 15:06:54,882 - DEBUG [ FixedDelayWorker - work() - 10 ] - working...
2014-05-05 15:06:54,882 - DEBUG [ FixedDelayWorker - work() - 11 ] - org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-10 has completed work.
我认为这可能是因为您在web.xml中包含了以下两行
<param-value>/WEB-INF/spring-servlet.xml</param-value>
/WEB-INF/spring-servlet.xml
一次作为单独的,一次用于SpringServlet定义。
这可能会创建两种不同的上下文。
我没有使用您的代码进行测试…您的代码:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-servlet.xml</param-value>
</context-param>
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
上下文配置位置
/WEB-INF/spring-servlet.xml
和
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
春天
org.springframework.web.servlet.DispatcherServlet
上下文配置位置
/WEB-INF/spring-servlet.xml
1.
您正在调用springservlet.xml两次
我的建议是:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-servlet.xml</param-value>
</context-param>
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
春天
org.springframework.web.servlet.DispatcherServlet
1.
春天
/
上下文配置位置
/WEB-INF/spring-servlet.xml
org.springframework.web.context.ContextLoaderListener
或者干脆
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/dispatcher-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
调度员
org.springframework.web.servlet.DispatcherServlet
上下文配置位置
/WEB-INF/spring/dispatcher-config.xml
1.
调度员
/
希望能有帮助
如果你注意到我没有解释,因为我很难解释。我希望这些代码可以 但如果我删除了应用程序上下文,我的应用程序就不会出现:(
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/dispatcher-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>