这两天发现部署到tomcat中的quartz定时任务每回都被执行了两次,但是在myeclipse执行时又不会,后来搜了网上,才发现该问题只发生于部署在tomcat服务器上,由tomcat的自启动导致。
导致该问题的原因是你的tomcat的conf目录中的server.xml有如下配置
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="C:\Program Files\Tomcat 6.0\webapps\XXX\" workDir="C:\Program Files\Tomcat 6.0\webapps\XXX\" />
其中第一行告诉tomcat,在启动的时候加载webapps下的所有项目工程文件,第二行又让tomcat再加载了一遍(一般情况下配置第二行,主要是由于想域名访问时将工程名去掉的原因配置),这种情况下会导致工程中的quartz定时被两次触发,执行两边。
因此修改方法如下
<Host name="localhost" appBase=""
unpackWARs="false" autoDeploy="false"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="C:\Program Files\Tomcat 6.0\webapps\XXX\" workDir="C:\Program Files\Tomcat 6.0\webapps\XXX5xun5mi\" />
将第一行中的appbase中的值去除,且autodeploy属性值设置为false,因此该行不会导致任何工程项目的加载。
分享到:
相关推荐
tomcat启动时立即调用quartz执行一次
quartz spring动态定时任务,可以直接在tomcat上面部署运行,框架是ssh2+ tomcat
quartz一个定时触发实例
Spring + quartz 定时任务修改定时时间不重启服务
Quartz.Net是一个定时任务框架,可以实现异常灵活的定时任务,开发人员只要编写少量的代码就可以实现“每隔1小时执行”、“每天22点执行”、“每月18日的下午执行8次”等各种定时任务。 Quartz.Net中的概念:计划者...
Quartz定时任务
quartz定时quartz定时
quartz定时任务使用例子大全,这里面介绍了三种使用quartz定时任务的方式,第一种方式是完全使用代码写死的调用方式,第二种使用的是从数据库读取任务配置信息的调用方式,第三种是使用从数据库读取任务配置,生成...
NULL 博文链接:https://medbricom.iteye.com/blog/1782765
spring定时器代码。解决多次执行问题。包含quartz-all.jar包。 说明很详细。希望能帮上哪位朋友。
使用quartz实现的java 定时任务,通过写cron表达式,让任务在制定时刻触发执行。
quartz 定时任务调度支持cron表达式,mvc版本,支持插件部署
Quartz 定时功能 quartz 定时程序 Quartz
spring注解Quartz定时执行功能
Quartz定时任务框架,本次小白使用它实现一个简单的定时任务。每隔3秒打印一次Hello。这个是例子的jar包,实现过程在博客首页可看到。
.net Quartz定时任务实例,两种方式调用:配置文件,代码动态调用
Spring Quartz定时任务 jar包
Quartz定时功能在WebForm 以及 WinForm上使用时,需要引用相关的dll
Spring整合Quartz定时发送邮件
spring3 配置quartz定时任务的使用。一个小例子。可直接运行Test.java。就可以启动定时任务。每10秒钟执行一次,可以根据自己配置。