kpi-dashboard / tools /setup_sync_task.ps1
Admin
Initial HF deploy
04477e7
Raw
History Blame
1.39 kB
param(
[string]$ProjectDir = (Split-Path -Parent (Split-Path -Parent $PSCommandPath)),
[string]$PythonPath = (Get-Command python).Source,
[string]$Time = "02:00",
[string]$TaskName = "KPI-Dashboard-FactSync"
)
$ScriptPath = Join-Path $ProjectDir "tools\run_sync.ps1"
@"
@`"$PythonPath`" -c `"import sys; sys.path.insert(0, '$ProjectDir'); from app import app; from services.platform_fetcher import fetch_all_facts; with app.app_context(): r = fetch_all_facts(); print(f'Saved: {r.get(`"`"values_saved`"`", 0)}'); [print(f'ERR: {e}') for e in r.get('errors', [])]`"
"@ | Set-Content -Path $ScriptPath -Encoding UTF8
$Action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-NoProfile -ExecutionPolicy Bypass -File `"$ScriptPath`""
$Trigger = New-ScheduledTaskTrigger -Weekly -WeeksInterval 1 -DaysOfWeek Monday -At $Time
$Principal = New-ScheduledTaskPrincipal -UserId "$env:USERDOMAIN\$env:USERNAME" -RunLevel Limited
Register-ScheduledTask -TaskName $TaskName -Action $Action -Trigger $Trigger -Principal $Principal -Force
Write-Output "Task '$TaskName' registered: every Monday at $Time"
Write-Output "Script: $ScriptPath"
Write-Output ""
Write-Output "To run immediately: Start-ScheduledTask -TaskName '$TaskName'"
Write-Output "To view: Get-ScheduledTask -TaskName '$TaskName'"
Write-Output "To disable: Disable-ScheduledTask -TaskName '$TaskName'"