SSH:解决Spring整合quartz定时任务执行两次问题
来源:互联网 发布:软件发布 编辑:程序博客网 时间:2024/05/17 20:31
一.问题描述:
开发环境是Windows,测试环境是Linux,正式环境是Linux。
同样的代码,定时任务在在开发环境、测试环境中测试的定时任务只执行一次,而在正式环境执行2次。
各环境不同的是数据库的连接,以及正式环境的域名配置。
因为所开发项目图片等一些目录路径问题,所以在生产环境上配置了Tomcat/conf/server.xml <Context
数据库不会影响定时任务执行2次,因此影响定时任务执行两次的只能是添加的<Context
二.解决方法:
五种解决办法:
1.将<Host/>里面的改成 autoDeploy="false" deployOnStartup="false" 这样就可以避免tomcat服务器中自启动导致quartz定时任务被触发两次。(当然还可以按需求修
改,毕竟每个项目的需求都不尽相同)如:<Host appBase="webapps" autoDeploy="false" deployOnStartup="false" name="localhost" unpackWARs="true">
(1)autodeploy属性值设置为false,如果此项为true,表示Tomcat服务处于运行状态时,能够监测appBase下的文件,如果有新web应用加入进来,会自动发布这个WEB应用,设成false就不会。
(2)增加deployOnStartup="false",表示Tomcat服务器启动时,不会自动发布appBase目录下所有的Web应用
(2)增加deployOnStartup="false",表示Tomcat服务器启动时,不会自动发布appBase目录下所有的Web应用
2.如果项目tomcat下只有一个项目的话可以推荐用方法1;但是因为我的tomcat下有其他的项目,所以以上两个没用;【推荐】
quartz写在applicationContext.xml中,解决方法为将quartz的配置单独写个配置文件applicationContext-quartz;然后在web.xml中
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml,classpath:applicationContext-quartz.xl</param-value>
</context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml,classpath:applicationContext-quartz.xl</param-value>
</context-param>
3.将路径已出webapp目录,在docBase中指定路径(可以是相对于webapp的路径,或者绝对路径)【推荐】
4.替换ROOT目录【推荐】--当tomcat下就一个项目时推荐
5.在conf/Catalina/localhost生成ROOT.xml,并加入如下内容:
1 <?xml version='1.0' encoding='utf-8'?>
2 <Context docBase="xxx" path="" reloadable="true" />
2 <Context docBase="xxx" path="" reloadable="true" />
阅读全文
0 0
- SSH:解决Spring整合quartz定时任务执行两次问题
- spring quartz 定时任务执行两次的问题
- spring+quartz定时任务执行两次
- spring定时任务quartz执行两次
- Spring 解决Quartz定时任务被触发两次的问题
- quartz 定时任务 执行两次
- SSH中使用quartz定时任务,执行两次解决办法
- 解决spring quartz定时任务执行2次的问题
- 解决Spring定时计划任务重复执行两次(实例被构造两次)问题的方法
- 解决Spring定时计划任务重复执行两次(实例被构造两次)问题的方法
- 解决Spring定时计划任务重复执行两次(实例被构造两次)问题的方法
- 解决Spring定时计划任务重复执行两次(实例被构造两次)问题的方法
- 解决Spring定时计划任务重复执行两次(实例被构造两次)问题的方法
- 解决Spring定时计划任务重复执行两次(实例被构造两次)问题的方法
- 解决Spring定时计划任务重复执行两次(实例被构造两次)问题的方法
- 【Spring】解决SpringTask定时执行两次问题
- spring 定时任务执行两次
- spring 定时任务执行两次
- hdoj1070 Milk(简单题)
- boost::asio::serial_port 串口编程
- iperf详细使用图文教程
- js第一节课
- go语言log包的学习(log,Logger)
- SSH:解决Spring整合quartz定时任务执行两次问题
- 机器学习竞赛技巧
- interlij idea创建给Web项目添加Hibernate
- Django来敲门~第一部分【3. 创建第一个项目】
- Hive中管理表(内部表)和外部表的区别是什么,及分区表使用场景
- OpenCV从Mat中提取某些行或列
- LIBRARY_PATH和LD_LIBRARY_PATH的区别
- P1481 魔族密码
- 1166: 阶乘问题(一) [数学