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下定时重启由mvn命令运行的springboot_第1张图片

windows下定时重启由mvn命令运行的springboot_第2张图片

这样,基本就能实现目的了。

注意:上面“允许 按需运行任务”,这样可以 手动地 启动/停止 这个任务,做调试用;同时不影响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());
				}


 

你可能感兴趣的:(Java,Microsoft)