72 lines
3.4 KiB
PowerShell
72 lines
3.4 KiB
PowerShell
# ============================================================================
|
|
# Troostwijk Auction Monitor - Windows Task Scheduler Setup
|
|
# ============================================================================
|
|
#
|
|
# This PowerShell script creates scheduled tasks in Windows Task Scheduler
|
|
# to run the auction monitor automatically.
|
|
#
|
|
# Usage:
|
|
# Run PowerShell as Administrator, then:
|
|
# .\setup-windows-task.ps1
|
|
#
|
|
# ============================================================================
|
|
|
|
Write-Host "=== Troostwijk Auction Monitor - Task Scheduler Setup ===" -ForegroundColor Cyan
|
|
Write-Host ""
|
|
|
|
# Configuration
|
|
$scriptPath = $PSScriptRoot
|
|
$jarPath = Join-Path $scriptPath "target\troostwijk-scraper-1.0-SNAPSHOT-jar-with-dependencies.jar"
|
|
$javaExe = "java"
|
|
|
|
# Check if JAR exists
|
|
if (-not (Test-Path $jarPath)) {
|
|
Write-Host "ERROR: JAR file not found at: $jarPath" -ForegroundColor Red
|
|
Write-Host "Please run 'mvn clean package' first." -ForegroundColor Yellow
|
|
exit 1
|
|
}
|
|
|
|
Write-Host "Creating scheduled tasks..." -ForegroundColor Green
|
|
Write-Host ""
|
|
|
|
# Task 1: Complete Workflow - Every 30 minutes
|
|
$task1Name = "TroostwijkMonitor-Workflow"
|
|
$task1Description = "Runs complete auction monitoring workflow every 30 minutes"
|
|
$task1Action = New-ScheduledTaskAction -Execute $javaExe -Argument "-jar `"$jarPath`" once" -WorkingDirectory $scriptPath
|
|
$task1Trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 30) -RepetitionDuration ([TimeSpan]::MaxValue)
|
|
$task1Settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable
|
|
|
|
try {
|
|
Register-ScheduledTask -TaskName $task1Name -Action $task1Action -Trigger $task1Trigger -Settings $task1Settings -Description $task1Description -Force
|
|
Write-Host "[✓] Created task: $task1Name (every 30 min)" -ForegroundColor Green
|
|
} catch {
|
|
Write-Host "[✗] Failed to create task: $task1Name" -ForegroundColor Red
|
|
Write-Host " Error: $_" -ForegroundColor Yellow
|
|
}
|
|
|
|
# Task 2: Status Check - Every 6 hours
|
|
$task2Name = "TroostwijkMonitor-StatusCheck"
|
|
$task2Description = "Checks auction monitoring status every 6 hours"
|
|
$task2Action = New-ScheduledTaskAction -Execute $javaExe -Argument "-jar `"$jarPath`" status" -WorkingDirectory $scriptPath
|
|
$task2Trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Hours 6) -RepetitionDuration ([TimeSpan]::MaxValue)
|
|
$task2Settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable
|
|
|
|
try {
|
|
Register-ScheduledTask -TaskName $task2Name -Action $task2Action -Trigger $task2Trigger -Settings $task2Settings -Description $task2Description -Force
|
|
Write-Host "[✓] Created task: $task2Name (every 6 hours)" -ForegroundColor Green
|
|
} catch {
|
|
Write-Host "[✗] Failed to create task: $task2Name" -ForegroundColor Red
|
|
Write-Host " Error: $_" -ForegroundColor Yellow
|
|
}
|
|
|
|
Write-Host ""
|
|
Write-Host "=== Setup Complete ===" -ForegroundColor Cyan
|
|
Write-Host ""
|
|
Write-Host "Created tasks:" -ForegroundColor White
|
|
Write-Host " 1. $task1Name - Runs every 30 minutes" -ForegroundColor Gray
|
|
Write-Host " 2. $task2Name - Runs every 6 hours" -ForegroundColor Gray
|
|
Write-Host ""
|
|
Write-Host "To view tasks: Open Task Scheduler and look for 'TroostwijkMonitor-*'" -ForegroundColor Yellow
|
|
Write-Host "To remove tasks: Run 'Unregister-ScheduledTask -TaskName TroostwijkMonitor-*'" -ForegroundColor Yellow
|
|
Write-Host ""
|