quartz 两次执行问题
最近发现网站(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 "%r" %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 两次执行问题相关推荐
- Spring的quartz定时器重复执行二次的问题解决
Spring的quartz定时器重复执行二次的问题解决 参考文章: (1)Spring的quartz定时器重复执行二次的问题解决 (2)https://www.cnblogs.com/alamps/p ...
- Shell简介:什么是Shell,Shell命令的两种执行方式
Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释 ...
- 静态语言采用什么方式执行 如c语言,编程语言的两种执行方式
1.概述 编程语言按执行方式来划分,分为:编译和解释两种.在介绍两种方式的概念以前,先介绍如下几种概念:程序员 源代码:采用某种编程语言编写的计算机程序,人类可读,例如:res = 1 + 1:编程 ...
- 程序的两种执行方式,静态语言和脚本语言
程序的两种执行方式,静态语言和脚本语言 文章目录 程序的两种执行方式,静态语言和脚本语言 编译和解释 静态语言和脚本语言 编译和解释 编译:将源代码一次性转换成目标代码的过程.(编译一次后,若需再次执 ...
- crontab 两周执行一次 查看执行计划
crontab 两周执行一次(每隔一周的周五执行) 1.最近试了很多方法 两周执行一次 ,最终还是实验出来了. 2.crontab 表达式 : 50 9 8-14,22-28 * 5 /home/ ...
- quartz定时任务不执行
quartz定时任务执行一段时间不执行的原因 数据库表QRTZ_TRIGGERS 里的TRIGGER_STATE 字段的值自动修改为ERROR了 ,quartz定时任务是不扫描这种ERROR情况. 之 ...
- cron 每两周执行_如何每两周/月/天执行一次cron作业
cron 每两周执行 We may want to run some jobs for every two weeks/months/days- under some situation such a ...
- quartz定时定时任务执行两次
quartz框架没问题. 流程: sping-quartz配置 <?xml version="1.0" encoding="UTF-8"?> < ...
- quartz 两个java_spring boot整合quartz实现多个定时任务的方法
最近收到了很多封邮件,都是想知道spring boot整合quartz如何实现多个定时任务的,由于本人生产上并没有使用到多个定时任务,这里给个实现的思路. 1.新建两个定时任务,如下: public ...
最新文章
- 斯坦福大学 AI100 报告发布:AI 发展速度惊人,但风险也正走进现实
- 通过nginx访问web,出现ERR_CONTENT_LENGTH_MISMATCH解决方法
- linux redhat、ubuntu系统 docker启动、停止命令
- 【ABAP】销售订单Billing Plan创建
- RocketMQ历史版本下载
- linux内存回收机制
- Taro+react开发(16)--跳转拿参
- 如何高效的学习前端的网页设计?
- @程序员,除了女朋友你还要带什么回去?
- 无线通信基础(一):高斯随机变量
- 【Gym-102606 H】Heat Pipes【奇环染色、bfs 生成树】
- Keil 中 Error L6002U
- 51单片机温控风扇仿真原理图 C语言程序,51单片机温控风扇仿真原理图+C语言程序与实物制作...
- 如何设置无线路由器提高迅雷下载速度
- python 绘制三维图
- PHP程序员开发win32应用程序之梦
- oneDNS解决google等登陆问题
- java referencequeue,Reference 、ReferenceQueue 详解
- sleep() 和 wait() 有什么区别
- dw html5中怎么设置图片自动切换,DW制作九宫格全屏亮灯轮播图片且自动切换图片教程...
热门文章
- 如何在maven repository手动下载jar包
- Kotlin入门教程——目录索引
- Effective C# 摘录(3) - 使用C#表达设计
- Python: ord()函数
- 重建控制文件--Rebuild controlfile
- vmware虚拟机配置串口
- 【下载】深入oracle数据库专用虚拟机环境部署方案《VirtualBox+OELR5U7x86_64+Oracle11gR2》...
- BZOJ 4154 kd-tree dfs序 + 二维空间的区间(矩阵)更新单点查找
- 【转载】Gradle命令行黑魔法
- SPAN Switched Port Analyzer 单臂路由