最近发现网站(xiayule.net)越写越大,有些东西已经难以维护了,想要添加个功能,都得斟酌半天

项目中有很多可重构的地方,小重构一直进行,大的不敢动,毕竟没有很多时间做测试。

最后,决定精简代码。。。。

能不用的框架、工具统统去掉,Struts慢慢用Spring MVC来代替,xml配置使用注解来代替。

狂改代码一通后,着实觉得有些可惜,毕竟很多是自己费了很多心思的,幸亏有做笔记的习惯。

呃,言归正传,以下是笔记内容, 推荐直接看解决方案。

quartz 两次执行问题是由于tomcat设置不当引起的,说白了,并非是 quartz 的原因,而是spring的配置被加载了两遍。

为了能够访问网站根,即直接输入http://localhost:8080就能访问应用,我是这样配置的tomcat

 <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1"><!--    <Engine name="Catalina" defaultHost="localhost">--><!--For clustering, please take a look at documentation at:/docs/cluster-howto.html  (simple how to)/docs/config/cluster.html (reference documentation) --><Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/><!-- Use the LockOutRealm to prevent attempts to guess user passwordsvia a brute-force attack --><Realm className="org.apache.catalina.realm.LockOutRealm"><!-- This Realm uses the UserDatabase configured in the global JNDIresources under the key "UserDatabase".  Any editsthat are performed against this UserDatabase are immediatelyavailable for use by the Realm.  --><Realm className="org.apache.catalina.realm.UserDatabaseRealm"resourceName="UserDatabase"/></Realm><Host name="localhost"  appBase="webapps"unpackWARs="true" autoDeploy="true" ><!-- SingleSignOn valve, share authentication between web applicationsDocumentation at: /docs/config/valve.html --><!--<Valve className="org.apache.catalina.authenticator.SingleSignOn" />--><!-- Access log processes all example.Documentation at: /docs/config/valve.htmlNote: The pattern used is equivalent to using pattern="common" --><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_access_log." suffix=".txt"pattern="%h %l %u %t &quot;%r&quot; %s %b" /><Context path="" docBase="getll" debug="0" reloadable="true"/></Host>
</Engine>

关键是这一句

<Context path="" docBase="getll" debug="0" reloadable="true"/> 

其中 Context path="" 表明了网站的根, dacBase是我的项目打包目录。这会导致我的web应用又被重新加载了一遍(webapps里面的项目本身就会被加载一遍),所以导致了项目中的bean都有两份。。

因此,尝试另一种配置根目录的方法。将项目放在webapps外的文件夹,然后指定其位置

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false">......<Context path="" docBase="/home/tan/getllWebApp/getll"/>
</Host>

还有一点要注意,就是我的设置成 `<Context path="" docBase="/home/tan/getllWebApp/getll.war"/>` 无效,只能设置成解压后的文件夹

第二天: 发现有时候应用程序不能启动

解决方案:
鉴于前两次的失败,最后决定最终方案,删除掉原先配置的<Context path="" docBase="/home/tan/getllWebApp/getll"/>, 如果没有,就不用删了,直接将应用解压到 webapp/ROOT 里面(需删除ROOT内的原内容)

一切解决,重复执行两次的问题消失啦。

转载于:https://www.cnblogs.com/tanhehe/p/4147349.html

quartz 两次执行问题相关推荐

  1. Spring的quartz定时器重复执行二次的问题解决

    Spring的quartz定时器重复执行二次的问题解决 参考文章: (1)Spring的quartz定时器重复执行二次的问题解决 (2)https://www.cnblogs.com/alamps/p ...

  2. Shell简介:什么是Shell,Shell命令的两种执行方式

    Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释 ...

  3. 静态语言采用什么方式执行 如c语言,编程语言的两种执行方式

    1.概述 编程语言按执行方式来划分,分为:编译和解释两种.在介绍两种方式的概念以前,先介绍如下几种概念:程序员 源代码:采用某种编程语言编写的计算机程序,人类可读,例如:res = 1 + 1:编程 ...

  4. 程序的两种执行方式,静态语言和脚本语言

    程序的两种执行方式,静态语言和脚本语言 文章目录 程序的两种执行方式,静态语言和脚本语言 编译和解释 静态语言和脚本语言 编译和解释 编译:将源代码一次性转换成目标代码的过程.(编译一次后,若需再次执 ...

  5. crontab 两周执行一次 查看执行计划

    crontab 两周执行一次(每隔一周的周五执行) 1.最近试了很多方法 两周执行一次 ,最终还是实验出来了. 2.crontab 表达式 : 50 9 8-14,22-28 * 5   /home/ ...

  6. quartz定时任务不执行

    quartz定时任务执行一段时间不执行的原因 数据库表QRTZ_TRIGGERS 里的TRIGGER_STATE 字段的值自动修改为ERROR了 ,quartz定时任务是不扫描这种ERROR情况. 之 ...

  7. cron 每两周执行_如何每两周/月/天执行一次cron作业

    cron 每两周执行 We may want to run some jobs for every two weeks/months/days- under some situation such a ...

  8. quartz定时定时任务执行两次

    quartz框架没问题. 流程: sping-quartz配置 <?xml version="1.0" encoding="UTF-8"?> < ...

  9. quartz 两个java_spring boot整合quartz实现多个定时任务的方法

    最近收到了很多封邮件,都是想知道spring boot整合quartz如何实现多个定时任务的,由于本人生产上并没有使用到多个定时任务,这里给个实现的思路. 1.新建两个定时任务,如下: public ...

最新文章

  1. 斯坦福大学 AI100 报告发布:AI 发展速度惊人,但风险也正走进现实
  2. 通过nginx访问web,出现ERR_CONTENT_LENGTH_MISMATCH解决方法
  3. linux redhat、ubuntu系统 docker启动、停止命令
  4. 【ABAP】销售订单Billing Plan创建
  5. RocketMQ历史版本下载
  6. linux内存回收机制
  7. Taro+react开发(16)--跳转拿参
  8. 如何高效的学习前端的网页设计?
  9. @程序员,除了女朋友你还要带什么回去?
  10. 无线通信基础(一):高斯随机变量
  11. 【Gym-102606 H】Heat Pipes【奇环染色、bfs 生成树】
  12. Keil 中 Error L6002U
  13. 51单片机温控风扇仿真原理图 C语言程序,51单片机温控风扇仿真原理图+C语言程序与实物制作...
  14. 如何设置无线路由器提高迅雷下载速度
  15. python 绘制三维图
  16. PHP程序员开发win32应用程序之梦
  17. oneDNS解决google等登陆问题
  18. java referencequeue,Reference 、ReferenceQueue 详解
  19. sleep() 和 wait() 有什么区别
  20. dw html5中怎么设置图片自动切换,DW制作九宫格全屏亮灯轮播图片且自动切换图片教程...

热门文章

  1. 如何在maven repository手动下载jar包
  2. Kotlin入门教程——目录索引
  3. Effective C# 摘录(3) - 使用C#表达设计
  4. Python: ord()函数
  5. 重建控制文件--Rebuild controlfile
  6. vmware虚拟机配置串口
  7. 【下载】深入oracle数据库专用虚拟机环境部署方案《VirtualBox+OELR5U7x86_64+Oracle11gR2》...
  8. BZOJ 4154 kd-tree dfs序 + 二维空间的区间(矩阵)更新单点查找
  9. 【转载】Gradle命令行黑魔法
  10. SPAN Switched Port Analyzer 单臂路由