Spring整合Quartz定时任务执行2次,Spring定时任务执行2次

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

©Copyright 蕃薯耀 2017年4月21日

http://www.cnblogs.com/fanshuyao/

一、问题描述:

开发环境是Windows,测试环境是Linux,正式环境是Linux。

同样的代码,定时任务在在开发环境、测试环境中测试的定时任务只执行一次,而在正式环境执行2次。

各环境不同的是数据库的连接,以及正式环境的域名配置。

二、解决方案:

由上面的问题分析,数据库连接不同不会影响定时任务的执行,那就是域名配置的地方导致的。

域名的配置在Tomcat/conf/server.xml配置,在host节点加上了Context的加载项,如下:

  1. <Host name="localhost"  appBase="webapps"  unpackWARs="true" autoDeploy="true">
  2. <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
  3. prefix="localhost_access_log." suffix=".txt"
  4. pattern="%h %l %u %t &quot;%r&quot; %s %b" />
  5. <Context path="" docBase="/home/java/tomcat7/webapps/finance" debug="0" reloadable="true"/>
  6. </Host>

为什么要加呢?

因为通过域名是只能映射到这台主机服务器,不能直接映射到文件夹,所以需要在Tomcat服务器的配置文件中做一个映射请求。

如上面所示:通过Context节点加了path和docBase两个属性,其中docBase是tomcat的Web项目的绝对路径(也可以用相对路径),而path则设置为空。把path设置为空,是希望通过域名访问,不用添加web项目的文件夹名称,直接就能访问,如http://zrrz.xxx.com/,而不是http://zrrz.xxx.com/文件夹名,这样就方便用户通过域名访问。有些人把path设置为斜杠(path="/")道理也是一样的。

不过,正是因为加了context节点才导致定时任务执行了两次。

最后的解决方案是:

把Host节点的appBase的值设置为空,如下:

  1. <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次的更多相关文章

  1. Spring整合Quartz定时任务 在集群、分布式系统中的应用(Mysql数据库环境)

    Spring整合Quartz定时任务 在集群.分布式系统中的应用(Mysql数据库环境)   转载:http://www.cnblogs.com/jiafuwei/p/6145280.html 单个Q ...

  2. 使用Spring整合Quartz轻松完成定时任务

    一.背景 上次我们介绍了如何使用Spring Task进行完成定时任务的编写,这次我们使用Spring整合Quartz的方式来再一次实现定时任务的开发,以下奉上开发步骤及注意事项等. 二.开发环境及必 ...

  3. Spring整合Quartz轻松完成定时任务

    一.背景 上次我们介绍了如何使用Spring Task进行完成定时任务的编写,这次我们使用Spring整合Quartz的方式来再一次实现定时任务的开发,以下奉上开发步骤及注意事项等. 二.开发环境及必 ...

  4. spring整合quartz并持久化

    spring整合quartz有两种方式: 一.常见是使用配置文件,将定时任务保存到内存中 简单示例: <!-- 短信催还提醒任务调度 --> <bean id="overd ...

  5. Spring整合Quartz分布式调度

    前言 为了保证应用的高可用和高并发性,一般都会部署多个节点:对于定时任务,如果每个节点都执行自己的定时任务,一方面耗费了系统资源,另一方面有些任务多次执行,可能引发应用逻辑问题,所以需要一个分布式的调 ...

  6. 基于spring的quartz定时框架,实现简单的定时任务功能

    在项目中,经常会用到定时任务,这就需要使用quartz框架去进行操作. 今天就把我最近做的个人主页项目里面的定时刷新功能分享一下,很简单. 首先需要配置一个配置文件,因为我是基于spring框架的,所 ...

  7. Spring整合Quartz分布式调度(山东数漫江湖)

    前言 为了保证应用的高可用和高并发性,一般都会部署多个节点:对于定时任务,如果每个节点都执行自己的定时任务,一方面耗费了系统资源,另一方面有些任务多次执行,可能引发应用逻辑问题,所以需要一个分布式的调 ...

  8. 初识quartz 并分析 项目中spring整合quartz的配置【原创+转载】

    初识quartz 并分析 项目中spring整合quartz的配置[原创+转载]2018年01月29日 12:08:07 守望dfdfdf 阅读数:114 标签: quartz 更多个人分类: 工具 ...

  9. Spring整合Quartz (cronTrigger和simpleTrigger实现方法)

    Spring整合Quartz (cronTrigger和simpleTrigger实现方法) 之前有记录过一次springboot整合Quartz的文章,由于偶尔一次自己使用spring需要整合Qua ...

随机推荐

  1. 网络安全实验室 脚本关通关writeup

    [1]key又又找不到了查看源代码.发现key的路径,点击进行了302跳转,抓包,得到key [2]快速口算要2秒内提交答案,果断上python import requests,re s = requ ...

  2. Visual Studio 2015/2017 与ASP.NET CORE 联合创建具有SPA模式的Angular2模板

    虽然注册博客园很久,但是一直没有什么可写的,真心感觉好尴尬了,这次终于找到了一点可以写,有点小兴奋和小害羞呢. 进入主题,前端SPA模式越来越受到欢迎,Core 也开始被很多企业提上日程,但是因为这个 ...

  3. Vue学习之路---No.6(分享心得,欢迎批评指正)

    我们还是先回顾一下上一次的重点: 1.事件绑定,我们可以对分别用方法和js表达式对事件进行处理 2.当方法名带括号的时候,在方法中一定要传参:而不带括号的时候,vm会自动配置默认event 3.各类事 ...

  4. android学习——环境的搭建

    1.安装JDK(java开发工具箱) 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html(根据自己需要下载) ...

  5. WPF: 在 MVVM 设计中实现对 ListViewItem 双击事件的响应

    ListView 控件最常用的事件是 SelectionChanged:如果采用 MVVM 模式来设计 WPF 应用,通常,我们可以使用行为(如 InvokeCommandAction)并结合命令来实 ...

  6. C#(.Net)知识点记录

    一:批量插入"SqlBulkCopy"的应用 PS:"SqlBulkCopy"的官方释义:"Lets you efficiently bulk loa ...

  7. C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(中)

    译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(中)),不对的地方欢迎指出与交流. 章节出自<Professional C# ...

  8. 一个想法照进现实-《IT连》创业项目:关于团队组建

    前言: 从上一篇<三天的风投对接活动内幕分享>归来后,从中领悟了不少内涵. 之后暂停了找钱的想法,这些天也拒绝了不少想要参与众筹的同学. 目前主要精力放在以下三件事: 1:重新规划顶层设计 ...

  9. SQL AlawaysOn 之五:ISCSI共享磁盘

    用于存放SQL数据库 1.安装服务 2.安装完成后要求重启计算机.添加该功能要配置计算机,如果是正式服务器,那种不能关机太久的服务器,请慎用. 重启之后看到文件和储存服务,击击进去 3.看到ISCSI ...

  10. 用C写一个web服务器(二) I/O多路复用之epoll

    .container { margin-right: auto; margin-left: auto; padding-left: 15px; padding-right: 15px } .conta ...