双击运行启动器脚本,根据菜单选择运行模式:
scripts\start_task_scheduler.bat
Agent 循环模式 - 全自动化,无需人工干预:
python scripts\auto_execute_tasks.py --chat-loop --use-agent
功能特点:
| 选项 | 模式 | 说明 | 适用场景 |
|---|---|---|---|
| 1 | 前台运行 | 实时查看日志,Ctrl+C 停止 | 调试、监控 |
| 2 | 后台运行 | 日志写入文件,无窗口 | 生产环境 |
| 3 | 单次执行 | 执行一次后退出 | 手动触发 |
| 选项 | 模式 | 说明 | 适用场景 |
|---|---|---|---|
| 4 | Agent 循环模式 | 全自动:检测→启动→执行→部署→关闭 | 生产环境首选 |
| 5 | Agent 单次执行 | 执行一次任务后退出 | 测试、验证 |
| 6 | Agent 循环 + 禁用部署 | 只执行任务,不部署到生产 | 开发环境 |
| 选项 | 模式 | 说明 | 适用场景 |
|---|---|---|---|
| 7 | Chat 循环模式 | 定期发送 Chat 消息提醒 | 需要人工确认 |
| 8 | 立即发送 Chat | 立即发送一次消息 | 手动触发 |
| 选项 | 功能 | 说明 |
|---|---|---|
| 9 | 测试连接 | 测试到生产服务器的 SSH 连接 |
| 10 | 立即部署 | 部署指定任务 ID 的脚本 |
| 选项 | 功能 | 说明 |
|---|---|---|
| 11 | 查看状态 | 查看进程、日志、任务状态 |
| 12 | 停止服务 | 停止后台运行的服务 |
cd G:\code-lab\DataOps-platform-new
python scripts\auto_execute_tasks.py [选项]
| 参数 | 说明 | 默认值 |
|---|---|---|
--once |
只执行一次检查,不循环 | - |
--interval N |
设置检查间隔(秒) | 300 |
| 参数 | 说明 | 默认值 |
|---|---|---|
--enable-chat |
启用自动 Cursor Chat | 禁用 |
--chat-input-pos "x,y" |
指定 Chat 输入框位置 | - |
--chat-message "消息" |
自定义 Chat 消息内容 | 默认消息 |
--chat-loop |
启动 Chat 自动触发循环 | - |
--chat-interval N |
Chat 循环检查间隔(秒) | 60 |
--send-chat-now |
立即发送一次 Chat 消息 | - |
| 参数 | 说明 | 默认值 |
|---|---|---|
--use-agent |
使用 Agent 模式 | 启用 |
--no-agent |
禁用 Agent,使用传统 Chat | - |
--agent-run |
立即启动 Agent 执行任务 | - |
--agent-timeout N |
Agent 超时时间(秒) | 3600 |
--no-auto-close |
任务完成后不自动关闭 Agent | - |
| 参数 | 说明 | 默认值 |
|---|---|---|
--enable-deploy |
启用自动部署 | 启用 |
--no-deploy |
禁用自动部署 | - |
--deploy-now TASK_ID |
立即部署指定任务 | - |
--test-connection |
测试生产服务器连接 | - |
| 参数 | 说明 |
|---|---|
--refresh-trigger |
仅刷新触发器文件 |
# Agent 循环模式 + 自动部署(推荐)
python scripts\auto_execute_tasks.py --chat-loop --use-agent
# 后台运行
start /B python scripts\auto_execute_tasks.py --chat-loop --use-agent > logs\auto_execute.log 2>&1
# Agent 循环模式,但不部署
python scripts\auto_execute_tasks.py --chat-loop --use-agent --no-deploy
# 单次执行测试
python scripts\auto_execute_tasks.py --agent-run --no-deploy
# 启用 Chat 循环
python scripts\auto_execute_tasks.py --chat-loop --no-agent
# 指定 Chat 输入框位置
python scripts\auto_execute_tasks.py --chat-loop --no-agent --chat-input-pos "1180,965"
# 测试生产服务器连接
python scripts\auto_execute_tasks.py --test-connection
# 立即部署任务 ID 123
python scripts\auto_execute_tasks.py --deploy-now 123
# 执行一次
python scripts\auto_execute_tasks.py --once
# 自定义检查间隔(10分钟)
python scripts\auto_execute_tasks.py --interval 600
# 立即发送 Chat 消息
python scripts\auto_execute_tasks.py --send-chat-now
┌─────────────────────────────────────────────────────────────┐
│ auto_execute_tasks.py │
│ (Agent 循环模式) │
└─────────────────────────────┬───────────────────────────────┘
│
┌───────────────────────┼───────────────────────┐
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌─────────────────┐ ┌──────────────┐
│ 1. 同步完成 │ │ 2. 获取pending │ │ 3. 生成文件 │
│ 任务 │ │ 任务 │ │ │
│ (completed)│ │ (从数据库) │ │ │
└─────────────┘ └─────────────────┘ └──────────────┘
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ 4. 创建任务文件 │ │
│ │ 更新状态为 │ │
│ │ processing │ │
│ └─────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────┐ │
│ │ 5. 生成执行指令文件 │ │
│ │ - pending_tasks.json │ │
│ │ - instructions.md │ │
│ │ - task_trigger.txt │ │
│ └──────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────┐ │
│ │ 6. 启动 Cursor Agent │ │
│ │ (自动打开新 Agent 会话) │ │
│ └──────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────┐ │
│ │ 7. 等待 Agent 执行完成 │ │
│ │ (监控 pending_tasks.json) │ │
│ └──────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────┐ │
│ │ 8. 检测到任务完成 │ │
│ │ (status = completed) │ │
│ └──────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────┐ │
│ │ 9. 自动部署到生产服务器 │ │
│ │ - 上传脚本文件 │ │
│ │ - 上传工作流文件 │ │
│ │ - 设置执行权限 │ │
│ └──────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────┐ │
│ │ 10. 自动关闭 Agent │ │
│ │ (如果启用 auto-close) │ │
│ └──────────────────────────────┘ │
│ │ │
└───────────────────────┼───────────────────────┘
▼
┌─────────────────┐
│ 等待下一次检查 │
│ (60秒间隔) │
└─────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ auto_execute_tasks.py │
│ (Chat 循环模式) │
└─────────────────────────────┬───────────────────────────────┘
│
▼
┌─────────────────┐
│ 1. 生成执行指令 │
└─────────────────┘
│
▼
┌─────────────────┐
│ 2. 发送 Chat 消息│
│ (需要 GUI) │
└─────────────────┘
│
▼
┌─────────────────┐
│ 3. 等待人工响应 │
│ (手动执行) │
└─────────────────┘
│
▼
┌─────────────────┐
│ 4. 检测任务完成 │
└─────────────────┘
│
▼
┌─────────────────┐
│ 5. 同步数据库 │
└─────────────────┘
| 文件路径 | 说明 | 格式 |
|---|---|---|
tasks/pending_tasks.json |
待处理任务列表 | JSON |
tasks/task_execute_instructions.md |
Cursor 执行指令 | Markdown |
tasks/task_trigger.txt |
触发器标记文件 | 文本 |
logs/auto_execute.log |
后台运行日志 | 文本 |
app/core/data_flow/*.py |
任务占位文件 | Python |
[
{
"task_id": 123,
"task_name": "创建数据流",
"task_description": "从 A 到 B 的数据同步",
"status": "processing",
"created_at": "2025-01-07T10:00:00",
"file_path": "app/core/data_flow/task_123.py"
}
]
# 任务执行指令
## 任务信息
- 任务ID: 123
- 任务名称: 创建数据流
- 状态: processing
## 执行要求
1. 阅读任务描述
2. 创建或修改文件
3. 完成后更新状态为 completed
## 完成标记
完成后请更新 tasks/pending_tasks.json 中的状态为 "completed"
编辑文件:app/config/config.py
# PostgreSQL 数据库配置
DATABASE_CONFIG = {
'host': 'localhost',
'port': 5432,
'database': 'dataops',
'user': 'postgres',
'password': 'your_password'
}
编辑文件:scripts/auto_execute_tasks.py
PRODUCTION_SERVER = {
"host": "your-server.com",
"port": 22,
"username": "deploy_user",
"password": "your_password",
"script_path": "/opt/dataops/scripts",
"workflow_path": "/opt/dataops/workflows",
}
安装依赖:
pip install pywin32 pyautogui pyperclip
获取 Chat 输入框位置:
--chat-input-pos "x,y" 参数指定示例:
python scripts\auto_execute_tasks.py --chat-loop --no-agent --chat-input-pos "1180,965"
pip install psycopg2-binary
pip install pywin32 pyautogui pyperclip
pip install paramiko
pip install psycopg2-binary pywin32 pyautogui pyperclip paramiko
症状: 运行脚本时报错 ModuleNotFoundError
检查:
# 检查 Python 版本
python --version
# 检查依赖
pip show psycopg2-binary
解决:
pip install psycopg2-binary
症状: 日志显示 数据库连接失败
检查:
app/config/config.py 配置是否正确解决:
# 测试数据库连接
python -c "import psycopg2; conn = psycopg2.connect('postgresql://user:pass@host:5432/db'); print('连接成功')"
症状: 日志显示 无法启动 Cursor Agent
检查:
解决:
# 安装 GUI 依赖
pip install pywin32 pyautogui
# 手动测试
python scripts\auto_execute_tasks.py --agent-run
症状: 日志显示 SSH 连接失败 或 部署失败
检查:
解决:
# 安装 paramiko
pip install paramiko
# 测试连接
python scripts\auto_execute_tasks.py --test-connection
症状: 后台进程无法通过启动器停止
解决方法 1: 使用启动器
运行 start_task_scheduler.bat → 选择 12
解决方法 2: 使用 PowerShell
Get-WmiObject Win32_Process | Where-Object { $_.CommandLine -like '*auto_execute_tasks.py*' } | ForEach-Object { Stop-Process -Id $_.ProcessId -Force }
解决方法 3: 使用任务管理器
python.exe 进程auto_execute_tasks.py症状: 启用 Chat 后无反应
检查:
解决:
# 安装依赖
pip install pywin32 pyautogui pyperclip
# 重新获取输入框位置
# 使用 PowerToys 或其他工具获取准确坐标
INFO - 正常信息WARNING - 警告信息ERROR - 错误信息前台运行: 直接输出到控制台
后台运行: logs\auto_execute.log
# 查看全部日志
type logs\auto_execute.log
# 查看最后 50 行
powershell "Get-Content logs\auto_execute.log -Tail 50"
# 实时监控日志
powershell "Get-Content logs\auto_execute.log -Wait -Tail 20"
2025-01-07 10:00:00 - INFO - ========================================
2025-01-07 10:00:00 - INFO - 🚀 启动自动任务执行脚本 (Agent 模式)
2025-01-07 10:00:00 - INFO - ========================================
2025-01-07 10:00:05 - INFO - ✅ 数据库连接成功
2025-01-07 10:00:06 - INFO - 📋 发现 1 个 pending 任务
2025-01-07 10:00:06 - INFO - 📝 生成任务执行指令文件
2025-01-07 10:00:07 - INFO - 🚀 启动 Cursor Agent...
2025-01-07 10:05:30 - INFO - ✅ 任务 123 已完成
2025-01-07 10:05:31 - INFO - 🚀 开始部署到生产服务器...
2025-01-07 10:05:35 - INFO - ✅ 部署成功
2025-01-07 10:05:36 - INFO - 🔒 关闭 Cursor Agent
推荐配置:
启动命令:
start /B python scripts\auto_execute_tasks.py --chat-loop --use-agent > logs\auto_execute.log 2>&1
监控命令:
# 查看状态
scripts\start_task_scheduler.bat → 选择 11
# 查看日志
powershell "Get-Content logs\auto_execute.log -Wait -Tail 20"
推荐配置:
启动命令:
python scripts\auto_execute_tasks.py --agent-run --no-deploy
推荐配置:
启动命令:
python scripts\auto_execute_tasks.py --once
Windows 任务计划程序:
python.exescripts\auto_execute_tasks.py --agent-runG:\code-lab\DataOps-platform-new| 文件路径 | 说明 |
|---|---|
scripts/auto_execute_tasks.py |
核心调度脚本 |
scripts/start_task_scheduler.bat |
启动器脚本 |
scripts/AUTO_TASKS_使用说明.md |
本文档 |
app/config/config.py |
数据库配置 |
tasks/pending_tasks.json |
任务状态文件 |
tasks/task_execute_instructions.md |
执行指令文件 |
logs/auto_execute.log |
日志文件 |
新增功能:
改进:
修复:
祝您使用愉快!🚀
如有问题,请查看日志文件或联系技术支持。