痛点来源
本人参与的项目采用按业务分离的模式架构开发,每次测试时都需要在Visual Studio Code 中开多个powershell窗口启动多个服务,所以感觉比较痛苦,因为在windows上开发, 然后就想到了bat。
实现细节
bat 启动文件
#cmd-api-start.bat
@echo off
set node=%NODE_HOME%\\node.exe
:从services.txt读取没有'#'注释的服务列表并启动
for /f "eol=/delims=" %%b in ('findstr /i /v "^#" services.txt') do (
start "%%b Service" %node% %%b
)
services.txt如下
#services.txt
C:/Users/gs82167/git/gui_simweb/simpliciti.js
C:/Users/gs82167/git/simweb-common-router/app/api.js
C:/Users/gs82167/git/container_simweb/api/app/simweb.js
C://Users/gs82167/git/api_counterparty/v1/app/api.js
C:/Users/gs82167/git/api_agreement/v2/app/api.js
#C:/Users/gs82167/git/api_discounting/v2/app/api.js
#C:/Users/gs82167/git/api_makerchecker/v1/app/api.js
体验升级
因cmd 窗口太小,日志不方便查看,于是采用git-bash.exe 调试。
#bash-api-start.bat
@echo off
set gitbash=%BASH_HOME%\git-bash.exe
set mintty=%BASH_HOME%\usr\bin\mintty.exe
for /f "eol=/delims=" %%b in ('findstr /i /v "^#" services.txt') do (
start /min "" "%mintty%" --icon "%gitbash%",0 --exec "/usr/bin/bash" --login -i -c "node %%b"
)
既然有启动程序,当然也有关闭程序
#kill-node.bat
taskkill /F /IM node.exe
总结
微服务火热的当下,本地测试时需要启动的服务更多,例如spring cloud 相关项目的一键启动也可以参照以上脚本。