| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 |
- @echo off
- chcp 65001 >nul
- REM ============================================================
- REM 自动任务调度脚本启动器 (Agent 模式)
- REM ============================================================
- REM 功能:启动核心任务调度脚本 auto_execute_tasks.py
- REM 支持 Agent 单次执行、循环模式、部署管理等功能
- REM ============================================================
- setlocal enabledelayedexpansion
- REM 切换到项目根目录
- cd /d %~dp0..
- echo.
- echo ========================================================
- echo 自动任务调度脚本启动器 (Agent 模式)
- echo ========================================================
- echo.
- REM 检查 Python 是否安装
- python --version >nul 2>&1
- if errorlevel 1 (
- echo [错误] 未找到 Python,请先安装 Python
- pause
- exit /b 1
- )
- REM 检查脚本文件是否存在
- if not exist "scripts\auto_execute_tasks.py" (
- echo [错误] 未找到脚本文件: scripts\auto_execute_tasks.py
- pause
- exit /b 1
- )
- REM 检查项目配置文件是否存在
- if not exist "app\config\config.py" (
- echo [错误] 未找到项目配置文件: app\config\config.py
- pause
- exit /b 1
- )
- REM 创建必要的目录
- if not exist "logs" mkdir logs
- if not exist "tasks" mkdir tasks
- echo [信息] 当前目录: %cd%
- echo.
- echo ========================================================
- echo 请选择运行模式
- echo ========================================================
- echo.
- echo 【Agent 模式】
- echo 1. Agent 单次执行 (执行一次任务后退出)
- echo 2. Agent 循环模式 (持续监听任务)
- echo 3. Agent 循环模式 + 禁用自动部署
- echo.
- echo 【部署管理】
- echo 4. 测试生产服务器连接
- echo 5. 立即部署指定任务
- echo.
- echo 【系统管理】
- echo 6. 查看服务状态
- echo 7. 停止后台服务
- echo.
- echo 0. 退出
- echo ========================================================
- echo.
- set /p choice="请输入选择 [0-7]: "
- if "%choice%"=="1" goto :run_agent_once
- if "%choice%"=="2" goto :run_agent_loop
- if "%choice%"=="3" goto :run_agent_no_deploy
- if "%choice%"=="4" goto :test_connection
- if "%choice%"=="5" goto :deploy_now
- if "%choice%"=="6" goto :check_status
- if "%choice%"=="7" goto :stop_service
- if "%choice%"=="0" goto :exit
- echo [错误] 无效的选择,请重新运行
- pause
- exit /b 1
- REM ============================================================
- REM Agent 模式
- REM ============================================================
- :run_agent_once
- echo.
- echo ========================================================
- echo Agent 单次执行模式
- echo ========================================================
- echo [功能] 执行一次任务后自动退出
- echo [超时] 3600秒 (1小时)
- echo ========================================================
- echo.
- python scripts\auto_execute_tasks.py --agent-run
- pause
- goto :exit
- :run_agent_loop
- echo.
- echo ========================================================
- echo Agent 循环模式
- echo ========================================================
- echo [功能] 持续监听任务,自动启动/关闭 Agent
- echo [间隔] 任务检查: 300秒
- echo [部署] 自动部署已启用
- echo [提示] 按 Ctrl+C 可停止服务
- echo ========================================================
- echo.
- python scripts\auto_execute_tasks.py --agent-loop
- pause
- goto :exit
- :run_agent_no_deploy
- echo.
- echo ========================================================
- echo Agent 循环模式 (禁用自动部署)
- echo ========================================================
- echo [功能] 持续监听任务,自动启动/关闭 Agent
- echo [间隔] 任务检查: 300秒
- echo [部署] 自动部署已禁用
- echo [提示] 按 Ctrl+C 可停止服务
- echo ========================================================
- echo.
- python scripts\auto_execute_tasks.py --agent-loop --no-deploy
- pause
- goto :exit
- REM ============================================================
- REM 部署管理
- REM ============================================================
- :test_connection
- echo.
- echo ========================================================
- echo 测试生产服务器连接
- echo ========================================================
- echo [功能] 测试 SSH 连接到生产服务器
- echo ========================================================
- echo.
- python scripts\auto_execute_tasks.py --test-connection
- echo.
- pause
- goto :exit
- :deploy_now
- echo.
- echo ========================================================
- echo 立即部署指定任务
- echo ========================================================
- echo.
- set /p task_id="请输入要部署的任务 ID: "
- if "%task_id%"=="" (
- echo [错误] 任务 ID 不能为空
- pause
- goto :exit
- )
- echo.
- echo [部署] 任务 ID: %task_id%
- echo ========================================================
- echo.
- python scripts\auto_execute_tasks.py --deploy-now %task_id%
- echo.
- pause
- goto :exit
- REM ============================================================
- REM 系统管理
- REM ============================================================
- :check_status
- echo.
- echo ========================================================
- echo 服务状态检查
- echo ========================================================
- echo.
- echo [进程状态]
- powershell -Command "$processes = Get-WmiObject Win32_Process | Where-Object { $_.CommandLine -like '*auto_execute_tasks.py*' }; if ($processes) { Write-Host '[运行中] 找到以下进程:' -ForegroundColor Green; $processes | ForEach-Object { Write-Host (' 进程ID: ' + $_.ProcessId + ' | 启动时间: ' + $_.CreationDate) } } else { Write-Host '[未运行] 未找到 auto_execute_tasks.py 进程' -ForegroundColor Yellow }"
- echo.
- echo ========================================================
- echo 最近日志 - 最后 30 行
- echo ========================================================
- echo.
- if exist "logs\auto_execute.log" (
- powershell -Command "Get-Content logs\auto_execute.log -Tail 30 -ErrorAction SilentlyContinue"
- ) else (
- echo [提示] 日志文件不存在: logs\auto_execute.log
- )
- echo.
- echo ========================================================
- echo pending_tasks.json 状态
- echo ========================================================
- echo.
- if exist "tasks\pending_tasks.json" (
- echo [文件存在] tasks\pending_tasks.json
- powershell -Command "$tasks = Get-Content 'tasks\pending_tasks.json' -Raw -ErrorAction SilentlyContinue | ConvertFrom-Json; if ($tasks) { Write-Host (' 任务数量: ' + $tasks.Count); $tasks | ForEach-Object { Write-Host (' - [' + $_.task_id + '] ' + $_.task_name + ' (' + $_.status + ')') } } else { Write-Host ' [空] 没有待处理任务' }"
- ) else (
- echo [提示] pending_tasks.json 不存在
- )
- echo.
- echo ========================================================
- echo 任务执行指令文件
- echo ========================================================
- echo.
- if exist "tasks\task_execute_instructions.md" (
- echo [文件存在] tasks\task_execute_instructions.md
- powershell -Command "$content = Get-Content 'tasks\task_execute_instructions.md' -Raw -ErrorAction SilentlyContinue; if ($content) { $lines = $content -split '`n'; Write-Host (' 行数: ' + $lines.Count); Write-Host ' 前 10 行:'; $lines | Select-Object -First 10 | ForEach-Object { Write-Host (' ' + $_) } } else { Write-Host ' [空文件]' }"
- ) else (
- echo [提示] task_execute_instructions.md 不存在
- )
- echo.
- pause
- goto :exit
- :stop_service
- echo.
- echo ========================================================
- echo 停止后台服务
- echo ========================================================
- echo.
- powershell -Command "$processes = Get-WmiObject Win32_Process | Where-Object { $_.CommandLine -like '*auto_execute_tasks.py*' }; if ($processes) { Write-Host '[找到] 以下进程将被停止:' -ForegroundColor Yellow; $processes | ForEach-Object { Write-Host (' 进程ID: ' + $_.ProcessId); Stop-Process -Id $_.ProcessId -Force -ErrorAction SilentlyContinue }; Write-Host '[完成] 进程已停止' -ForegroundColor Green } else { Write-Host '[提示] 未找到运行中的进程' -ForegroundColor Cyan }"
- echo.
- pause
- goto :exit
- :exit
- endlocal
- exit /b 0
|