windows下定時重啓由mvn命令運行的springboot

springboot開發效率不錯。有的時候,部署起來時,也直接把程序代碼從git上拉下來,然後切到目錄下直接用mvn命令啓動它,免得打包的麻煩,無論是打war包還是打jar包,都不適合快速迭代。

假設這時候,我想定時重啓這個springboot,那麼由於它沒有部署在tomcat裏,無法通過定時重啓tomcat的windows服務或者tomcat腳本來實現。

這時可以如下:

目錄

製作一個啓動run.bat

在window的計劃任務裏,調度它

查看控制檯日誌:

把所有日誌輸出到springboot的日誌文件裏


製作一個啓動run.bat

rem ---------- 先殺死 當前 正佔用8080端口的 先前跑起來的 任務
setlocal enabledelayedexpansion
set port=8080
for /f "tokens=1-5" %%a in ('netstat -ano ^| find ":%port%"') do (
    if "%%e%" == "" (
        set pid=%%d
    ) else (
        set pid=%%e
    )
    echo !pid!
    taskkill /f /pid !pid!
)
rem ---------- 殺進程 結束

rem 一定要切換到目標目錄
cd E:\java\springboot
e:
git pull

mvn spring-boot:run -Dspring-boot.run.profiles=test -Dmaven.test.skip=true -Dspring-boot.run.jvmArguments="-Xms128m -Xmx1024m"

 

在window的計劃任務裏,調度它

這樣,基本就能實現目的了。

注意:上面“允許 按需運行任務”,這樣可以 手動地 啓動/停止 這個任務,做調試用;同時不影響windows的任務計劃調度它。

查看控制檯日誌:

這裏會帶來一個問題,就是springboot的運行控制檯沒有了。如果springboot有日誌輸出,可以用windows下的tail命令行,來觀察按天輸出的springboot日誌:

set dateStr=%date:~0,4%-%date:~5,2%-%date:~8,2%
echo %dateStr%
tail -f ..\..\applog\%dateStr%\%dateStr%.log

正規做法:把所有日誌輸出到springboot的日誌文件裏

//在類的開頭定義Logger 
private final Logger logger = LoggerFactory.getLogger(this.getClass());

//在需要輸出的地方定義------
logger.info("------")。。。。。
logger.debug("------")。。。。。

//把錯誤日誌也輸出到log
				} catch (Exception e) {
					// TODO Auto-generated catch block
					logger.error(e.getMessage());
				}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章