18 lines
743 B
Batchfile
18 lines
743 B
Batchfile
@echo off
|
|
setlocal
|
|
|
|
set "TASK_NAME=DocuTranslate"
|
|
set "HEALTH_URL=http://127.0.0.1:8010/service/meta"
|
|
set "LOG_DIR=%~dp0logs"
|
|
set "LOG_FILE=%LOG_DIR%\watchdog.log"
|
|
|
|
if not exist "%LOG_DIR%" mkdir "%LOG_DIR%"
|
|
|
|
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
|
|
"$ErrorActionPreference = 'SilentlyContinue';" ^
|
|
"$ok = $false;" ^
|
|
"try { $r = Invoke-WebRequest -UseBasicParsing -Uri '%HEALTH_URL%' -TimeoutSec 5; $ok = ($r.StatusCode -eq 200) } catch { $ok = $false };" ^
|
|
"if (-not $ok) { Add-Content -Path '%LOG_FILE%' -Value ('[' + (Get-Date) + '] Health check failed, restarting %TASK_NAME%...'); schtasks /End /TN '%TASK_NAME%' | Out-Null; Start-Sleep -Seconds 2; schtasks /Run /TN '%TASK_NAME%' | Out-Null }"
|
|
|
|
exit /b 0
|