国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - spring定時任務執行兩次及tomcat部署緩慢問題的解決方法

spring定時任務執行兩次及tomcat部署緩慢問題的解決方法

2021-03-27 14:26Fururur Java教程

這篇文章主要給大家介紹了關于spring定時任務執行兩次及tomcat部署緩慢問題的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面小編來一起學習學習吧。

一、spring定時任務執行兩次

問題重現和解析

最近使用quartz定時任務框架,結果發現開發環境執行無任何問題,部署到服務器上后,發現同一時間任務執行了多次。經過搜索發現是服務器上tomcat的配置文件出現了問題。

原來的配置文件——server.xml如下:

?
1
2
3
4
5
6
7
8
<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 &quot;%r&quot; %s %b" />
</Host>
<Host name="www.xxx.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
 <Context path="" docBase="/usr/local/tomcat/apache-tomcat-8.5.9/webapps/xxxindex" reloadable="true"></Context>
</Host>

一個Host表示一個容器,里面可以包含若干個Context(應用)。上面這段配置文件意思就是:在tomcat中配置了兩個容器,一個name=localhost,應用的根目錄為webapps,并且會自動解壓war包和自動部署。沒有指定context,會把根目錄下的所有web應用都部署,部署成功后,外網可以通過服務器IP+項目名來訪問;另一個name=www.xxx.com,和第一個host不同在于,配置了主頁web應用,且不需要跟項目名就可以訪問。部署成功后可以通過域名+項目名訪問,主頁所在項目可以直接通過根域名訪問。

這個時候問題就來了,包含定時任務的項目部署在webapps目錄下,tomcat中兩個獨立的容器都部署了一遍,相當于項目在服務器上的tomcat上部署了兩次,兩邊同時會運行定時任務,指定的是同一個數據庫。

問題解決

因此,為了盡可能不影響其他項目的正常訪問,我做了折中,講需要執行定時任務的項目單獨部署在另一個文件夾中,例如webroot ,然后只使用域名那個host,配置文件修改后如下:

?
1
2
3
4
5
6
7
8
9
10
11
<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 &quot;%r&quot; %s %b" />
</Host>
<Host name="www.xxx.com" appBase="" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
 <Context path="" docBase="/usr/local/tomcat/apache-tomcat-8.5.9/webapps/xxxindex" reloadable="true"></Context>
 <Context path="/projectA" docBase="/usr/local/tomcat/apache-tomcat-8.5.9/webapps/projectA" reloadable="true"></Context>
 <Context path="/projectB" docBase="/usr/local/tomcat/apache-tomcat-8.5.9/webapps/projectB" reloadable="true"></Context>
 <Context path="/projectC" docBase="/usr/local/tomcat/apache-tomcat-8.5.9/webroot/projectC" reloadable="true"></Context>
</Host>

可以看到projectC是包含定時任務的項目。這樣部署成功后,除了該項目只能通過域名訪問之外,其余項目的訪問方式和之前保持不變。同時問題解決,定時任務只執行一次。

網上的另一種說法

?
1
2
3
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
 <Context docBase="projectA" path="" reloadable="true" />
</Host>

只有一個host,tomcat在啟動時,會部署一次根目錄下的所有項目,然后Context又會單獨部署一次,所以也會導致定時任務執行2次。

對于這種問題,解決的方案也有多種:

  • 將huost的appBase設為空,將Context的Context 指向項目部署位置的絕對路徑。
  • 刪除Context節點。

二、tomcat部署緩慢的問題

用的阿里云服務器,部署tomcat時速度非常慢,但是后來買的新阿里云又沒有這個問題。部署項目后一直會在

INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /opt/apache-tomcat-8.0.15-server/webapps/ROOT

這里卡好幾分鐘才會繼續下去。之前一直以為是服務器配置原因,后來無意中發現是jre的配置原因。參考了幾篇博客,發現oracle在WebLogic的文檔下Avoiding JVM Delays Caused by Random Number Generation給了原因和解決方案。

The library used for random number generation in Sun's JVM relies on /dev/random by default for UNIX platforms. This can potentially block the WebLogic SIP Server process because on some operating systems /dev/random waits for a certain amount of "noise" to be generated on the host machine before returning a result. Although /dev/random is more secure, BEA recommends using /dev/urandom if the default JVM configuration delays WebLogic SIP Server startup.

意思就是:

  • JVM上產生隨機數的策略有兩種:/dev/random 和/dev/urandom。
  • tomcat或者WebLogic等web服務器在部署時需要等待若一段隨機數產生的時間。unix平臺下JVM默認采用的是安全性更好的/dev/random,但是潛在的會阻塞服務進程。
  • 推薦使用/dev/urandom,產生隨機數速度快,/dev/random需要時間間隔生成隨機數,部署時間長。

修改方式:

  • 打開$JAVA_HOME/jre/lib/security/java.security文件。
  • 將securerandom.source=file:/dev/random 修改為securerandom.source=file:/dev/urandom
  • 重啟tomcat,三十秒部署成功,solve it

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:https://www.cnblogs.com/Sinte-Beuve/p/8360321.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费一级电影 | 黄色一级视频免费看 | 中文字幕三区 | 综合精品 | 婷婷精品久久久久久久久久不卡 | 欧美成在线观看 | www.91看片| 精品久久久久久久久久久久 | 精品无码久久久久久国产 | 欧美人交a欧美精品 | www午夜| 欧美亚洲高清 | 一区二区三区中文字幕 | 久久久亚洲成人 | 久久久久久av | 日韩精品www | 爱爱视频网站 | 日韩精品一区在线 | 开心久久婷婷综合中文字幕 | 日本在线免费 | 毛片网站免费在线观看 | 国产成人精品一区二区三区四区 | 国产日韩欧美一区 | 老色批影院 | 久久精品2 | 一区二区三区视频 | 一区二区三区亚洲 | 九九精品在线 | 亚洲一区二区在线 | 免费观看一级视频 | 成人午夜影院 | 中文字幕在线视频一区 | 深夜av在线 | 在线观看亚洲专区 | 国产四区视频 | www.av在线.com| 亚洲精品一区二三区 | 欧美精品在线一区 | 日本在线观看一区 | 精品久久久久久久久久 | 亚洲精品免费在线 |