# 自动任务执行脚本 - 使用说明

## 🚀 快速开始

### 推荐方式：使用启动器

双击运行启动器脚本，根据菜单选择运行模式：

```
scripts\start_task_scheduler.bat
```

启动器支持以下模式：
1. **前台运行** - 可以看到实时日志，按 Ctrl+C 停止
2. **后台运行** - 无窗口运行，日志输出到文件
3. **执行一次** - 只检查一次 pending 任务
4. **前台运行 + 自动 Chat** - 自动向 Cursor 发送任务提醒
5. **后台运行 + 自动 Chat** - 后台运行并自动发送 Chat
6. **查看服务状态** - 检查进程状态和日志
7. **停止服务** - 停止后台运行的服务

---

### 命令行方式

```cmd
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 消息内容 |

**示例：**

```cmd
# 执行一次
python scripts\auto_execute_tasks.py --once

# 每 10 分钟检查一次
python scripts\auto_execute_tasks.py --interval 600

# 启用自动 Chat
python scripts\auto_execute_tasks.py --enable-chat --chat-input-pos "1180,965"

# 完整示例
python scripts\auto_execute_tasks.py --interval 300 --enable-chat --chat-input-pos "1180,965"
```

---

## 📊 工作流程

```
┌─────────────────────────────────────────────────────────────┐
│                    auto_execute_tasks.py                    │
└─────────────────────────────┬───────────────────────────────┘
                              │
      ┌───────────────────────┼───────────────────────┐
      ▼                       ▼                       ▼
┌─────────────┐      ┌─────────────────┐      ┌──────────────┐
│ 1. 同步完成 │      │ 2. 获取pending  │      │ 3. 生成文件  │
│    状态     │      │    任务         │      │              │
└─────────────┘      └─────────────────┘      └──────────────┘
      │                       │                       │
      │                       ▼                       │
      │              ┌─────────────────┐              │
      │              │ 4. 创建任务文件 │              │
      │              │    更新状态为   │              │
      │              │    processing   │              │
      │              └─────────────────┘              │
      │                       │                       │
      │                       ▼                       │
      │        ┌──────────────────────────────┐       │
      │        │ 5. 写入 pending_tasks.json   │       │
      │        │ 6. 生成 instructions.md      │       │
      │        └──────────────────────────────┘       │
      │                       │                       │
      │                       ▼                       │
      │        ┌──────────────────────────────┐       │
      │        │ 7. (可选) 发送 Cursor Chat   │       │
      │        └──────────────────────────────┘       │
      │                       │                       │
      └───────────────────────┼───────────────────────┘
                              ▼
                    ┌─────────────────┐
                    │  等待下一次检查  │
                    └─────────────────┘
```

---

## 📁 生成的文件

| 文件 | 说明 |
|------|------|
| `.cursor/pending_tasks.json` | 待处理任务列表（JSON 格式） |
| `.cursor/task_execute_instructions.md` | Cursor 执行指令文件 |
| `.cursor/task_trigger.txt` | 触发器标记文件 |
| `logs/auto_execute.log` | 日志文件（后台模式） |
| `app/core/data_flow/*.py` | 任务占位文件（可配置路径） |

---

## ⚙️ 配置说明

### 数据库配置

编辑文件：`mcp-servers/task-manager/config.json`

```json
{
  "database": {
    "uri": "postgresql://user:password@host:5432/database"
  }
}
```

### 自动 Chat 配置

启用自动 Chat 需要安装以下依赖：

```cmd
pip install pywin32 pyautogui pyperclip
```

**获取 Chat 输入框位置：**
1. 打开 Cursor 并显示 Chat 面板
2. 将鼠标移动到 Chat 输入框
3. 记录鼠标坐标（可使用屏幕坐标工具）
4. 使用 `--chat-input-pos "x,y"` 参数指定

---

## 🔍 故障排查

### 问题 1：脚本无法启动

**检查：**
1. Python 是否安装：`python --version`
2. psycopg2 是否安装：`pip show psycopg2-binary`
3. 如果未安装：`pip install psycopg2-binary`

### 问题 2：无法连接数据库

**检查：**
1. PostgreSQL 服务是否运行
2. `mcp-servers/task-manager/config.json` 配置是否正确
3. 网络连接是否正常

### 问题 3：自动 Chat 不工作

**检查：**
1. 是否安装 GUI 依赖：`pip install pywin32 pyautogui pyperclip`
2. Cursor 窗口是否打开
3. Chat 输入框位置是否正确

### 问题 4：进程无法停止

**解决方法：**
1. 运行启动器选择 7 停止服务
2. 或打开任务管理器手动结束 Python 进程

---

## 📝 日志说明

### 前台运行
- 日志直接输出到控制台

### 后台运行
- 日志文件：`logs\auto_execute.log`

查看日志：
```cmd
# 查看全部日志
type logs\auto_execute.log

# 查看最后 50 行
powershell "Get-Content logs\auto_execute.log -Tail 50"
```

---

## 📞 相关文件

| 文件 | 说明 |
|------|------|
| `scripts/auto_execute_tasks.py` | 核心调度脚本 |
| `scripts/start_task_scheduler.bat` | 启动器脚本 |
| `mcp-servers/task-manager/config.json` | 数据库配置 |

---

**祝您使用愉快！🚀**
