Spring整合Quartz定时任务执行2次,Spring定时任务执行2次
Spring整合Quartz定时任务执行2次,Spring定时任务执行2次
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
©Copyright 蕃薯耀 2017年4月21日
http://www.cnblogs.com/fanshuyao/
一、问题描述:
开发环境是Windows,测试环境是Linux,正式环境是Linux。
同样的代码,定时任务在在开发环境、测试环境中测试的定时任务只执行一次,而在正式环境执行2次。
各环境不同的是数据库的连接,以及正式环境的域名配置。
二、解决方案:
由上面的问题分析,数据库连接不同不会影响定时任务的执行,那就是域名配置的地方导致的。
域名的配置在Tomcat/conf/server.xml配置,在host节点加上了Context的加载项,如下:
- <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
- <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
- prefix="localhost_access_log." suffix=".txt"
- pattern="%h %l %u %t "%r" %s %b" />
- <Context path="" docBase="/home/java/tomcat7/webapps/finance" debug="0" reloadable="true"/>
- </Host>
为什么要加呢?
因为通过域名是只能映射到这台主机服务器,不能直接映射到文件夹,所以需要在Tomcat服务器的配置文件中做一个映射请求。
如上面所示:通过Context节点加了path和docBase两个属性,其中docBase是tomcat的Web项目的绝对路径(也可以用相对路径),而path则设置为空。把path设置为空,是希望通过域名访问,不用添加web项目的文件夹名称,直接就能访问,如http://zrrz.xxx.com/,而不是http://zrrz.xxx.com/文件夹名,这样就方便用户通过域名访问。有些人把path设置为斜杠(path="/")道理也是一样的。
不过,正是因为加了context节点才导致定时任务执行了两次。
最后的解决方案是:
把Host节点的appBase的值设置为空,如下:
- <Host name="localhost" appBase="" unpackWARs="true" autoDeploy="true">
原因是:Host节点会加载webapps文件夹下面的所有项目,而增加的context节点也会加载具体的项目,导致加载了两次,也导致定时任务执行了两次。对于把appBase设置为空后会不会出现其它问题,暂时不知,但现在确实解决了定时任务执行两次的问题。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
©Copyright 蕃薯耀 2017年4月21日
http://www.cnblogs.com/fanshuyao/
Spring整合Quartz定时任务执行2次,Spring定时任务执行2次的更多相关文章
- Spring整合Quartz定时任务 在集群、分布式系统中的应用(Mysql数据库环境)
Spring整合Quartz定时任务 在集群.分布式系统中的应用(Mysql数据库环境) 转载:http://www.cnblogs.com/jiafuwei/p/6145280.html 单个Q ...
- 使用Spring整合Quartz轻松完成定时任务
一.背景 上次我们介绍了如何使用Spring Task进行完成定时任务的编写,这次我们使用Spring整合Quartz的方式来再一次实现定时任务的开发,以下奉上开发步骤及注意事项等. 二.开发环境及必 ...
- Spring整合Quartz轻松完成定时任务
一.背景 上次我们介绍了如何使用Spring Task进行完成定时任务的编写,这次我们使用Spring整合Quartz的方式来再一次实现定时任务的开发,以下奉上开发步骤及注意事项等. 二.开发环境及必 ...
- spring整合quartz并持久化
spring整合quartz有两种方式: 一.常见是使用配置文件,将定时任务保存到内存中 简单示例: <!-- 短信催还提醒任务调度 --> <bean id="overd ...
- Spring整合Quartz分布式调度
前言 为了保证应用的高可用和高并发性,一般都会部署多个节点:对于定时任务,如果每个节点都执行自己的定时任务,一方面耗费了系统资源,另一方面有些任务多次执行,可能引发应用逻辑问题,所以需要一个分布式的调 ...
- 基于spring的quartz定时框架,实现简单的定时任务功能
在项目中,经常会用到定时任务,这就需要使用quartz框架去进行操作. 今天就把我最近做的个人主页项目里面的定时刷新功能分享一下,很简单. 首先需要配置一个配置文件,因为我是基于spring框架的,所 ...
- Spring整合Quartz分布式调度(山东数漫江湖)
前言 为了保证应用的高可用和高并发性,一般都会部署多个节点:对于定时任务,如果每个节点都执行自己的定时任务,一方面耗费了系统资源,另一方面有些任务多次执行,可能引发应用逻辑问题,所以需要一个分布式的调 ...
- 初识quartz 并分析 项目中spring整合quartz的配置【原创+转载】
初识quartz 并分析 项目中spring整合quartz的配置[原创+转载]2018年01月29日 12:08:07 守望dfdfdf 阅读数:114 标签: quartz 更多个人分类: 工具 ...
- Spring整合Quartz (cronTrigger和simpleTrigger实现方法)
Spring整合Quartz (cronTrigger和simpleTrigger实现方法) 之前有记录过一次springboot整合Quartz的文章,由于偶尔一次自己使用spring需要整合Qua ...
随机推荐
- 软件测试之fault、error和failure的理解
(1) Identify the fault : The first element of the array is not looped. "for(int i=x.length-1;i ...
- 1632: [Usaco2007 Feb]Lilypad Pond
1632: [Usaco2007 Feb]Lilypad Pond Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 404 Solved: 118[Sub ...
- 基于C#的UDP通信(使用UdpClient实现,包含发送端和接收端)
UDP不属于面向连接的通信,在选择使用协议的时候,选择UDP必须要谨慎.在网络质量令人十分不满意的环境下,UDP协议数据包丢失会比较严重.但是由于UDP的特性:它不属于连接型协议,因而具有资源消耗小, ...
- 使用mysql_Front链接mysql,出现警告access denied for user ''@'localhost'
刚刚安装好的mysql5.7,想来使用工具方便一下,却一直有报这个错误: 最后找出原因:我给root用户设置的密码神不知鬼不觉的消失了,无奈, 解决办法一: cmd->mysql -h loca ...
- $_FILES详解
<form enctype="multipart/form-data" action="upload.php" method="post&quo ...
- Android 事件统计
title: Android 事件统计 1.写在前面的话 最近都在看framework的东西,也几天没有写什么东西,今天有点时间写下上次面试遇到的一个问题.问题大概是这样的,如果我需要统计页面的点击事 ...
- volatile关键字和synchronized关键字
volatile关键字: 可以用来修饰字段(成员变量),就是告知程序任何对该变量的访问均需要从共享内存中获取,而对它的改变必须同步刷新回共享内存,它能保证所有线程对变量访问的可见性. synchron ...
- [SQL] SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式
SQL 基础知识梳理(六)- 函数.谓词.CASE 表达式 目录 函数 谓词 CASE 表达式 一.函数 1.函数:输入某一值得到相应输出结果的功能,输入值称为“参数”,输出值称为“返回值”. 2. ...
- “倔驴”一个h5小游戏的实现和思考(码易直播)——总结与整理
3月23日晚上8点半(中国队火拼韩国的时候),做了一期直播分享.15年做的一个小游戏,把核心代码拿出来,现场讲写了一遍,结果后面翻车了,写错了两个地方,导致运行效果有点问题,直播边说话边写代码还真不一 ...
- Java单例模式的各种实现(饿汉、懒汉、静态内部类、static代码块、enum枚举类型)
饿汉模式 饿汉模式就是立即加载,在方法调用前,实例就已经被创建了,所以是线程安全的. public class MyObject1 { private static MyObject1 myObjec ...