Spring @Scheduled 在tomcat容器里面執行兩次
學習了:https://my.oschina.net/u/1982377/blog/536607?p={{currentPage-1}}
今天在用spring里面的@Scheduled執行定時任務,但是發現到觸發定時任務的時間點總會執行兩次。開始一直以為是spring配置出了問題。后面換了一台主機,在里面的tomcat跑了程序,只執行了一次。后面可以定位了,說明代碼和spring配置是沒有問題的,是tomcat配置出了問題。后面在網上查了一些資料,定位到是以前自己修改了service.xml導致的。配置如下: <Host name="localhost" appBase="/wls/apps" unpackWARs="false" autoDeploy="true"> <Context path="" docBase="/wls/apps/backup" reloadable="true"></Context> 這樣配置相當於tomcat容器加載了兩次應用。后面將appBase="/wls/apps" 改為appBase=""問題成功解決了。 以前自己也是這樣配置tomcat的,正納悶為什么請求的url后面加不加上應用名都能請求應用,如: hostIP:8080 和hostIP:8080/backup都能請求應用,原來tomcat里面本來就加載了兩個的應用。加上應用名對應的是appBase下面應用,不加應用名對應的是docBase。 關於appBase和docBase的區別,大家可以參考http://blog.csdn.net/liuxuejin/article/details/9104055 http://blog.csdn.net/jierui001/article/details/4168872