# Sadi Batch Processing - Cron Jobs Setup

## Tổng quan

Hệ thống xử lý tự động **8 batch Sadi** từ 061-065 đến 096-100:
- ✅ Mỗi batch chạy trong session/script riêng
- ⏱️  Nghỉ **10 phút** giữa các batch
- 🕐 Tổng thời gian: ~70 phút (không kể thời gian OCR thủ công)

## Danh sách batches

| # | Batch | File PDF | Script | Delay |
|---|-------|----------|--------|-------|
| 1 | 061-065 | Sadi-061-065.pdf | sadi-batch-061-065.sh | 0 min |
| 2 | 066-070 | Sadi-066-070.pdf | sadi-batch-066-070.sh | 10 min |
| 3 | 071-075 | Sadi-071-075.pdf | sadi-batch-071-075.sh | 20 min |
| 4 | 076-080 | Sadi-076-080.pdf | sadi-batch-076-080.sh | 30 min |
| 5 | 081-085 | Sadi-081-085.pdf | sadi-batch-081-085.sh | 40 min |
| 6 | 086-090 | Sadi-086-090.pdf | sadi-batch-086-090.sh | 50 min |
| 7 | 091-095 | Sadi-091-095.pdf | sadi-batch-091-095.sh | 60 min |
| 8 | 096-100 | Sadi-096-100.pdf | sadi-batch-096-100.sh | 70 min |

## Cách chạy

### Option 1: Chạy master script (khuyến nghị)

```bash
cd /opt/openclaw/.openclaw/workspace/scripts
bash sadi-all-batches.sh
```

Master script sẽ tự động:
- Chạy batch đầu tiên ngay lập tức
- Lên lịch 7 batches còn lại với delay 10 phút
- Chờ tất cả hoàn thành trước khi exit

### Option 2: Chạy từng batch riêng

```bash
# Chạy batch 1
bash sadi-batch-061-065.sh

# Chờ 10 phút, rồi chạy batch 2
bash sadi-batch-066-070.sh

# ... tiếp tục cho các batch còn lại
```

### Option 3: Thêm vào crontab (tự động hóa)

```bash
crontab -e
```

Thêm dòng sau để chạy vào 2:00 AM hàng ngày:
```
0 2 * * * /opt/openclaw/.openclaw/workspace/scripts/sadi-all-batches.sh
```

Hoặc chạy một lần vào thời điểm cụ thể:
```
30 14 * * * /opt/openclaw/.openclaw/workspace/scripts/sadi-all-batches.sh
```

## ⚠️ LƯU Ý QUAN TRỌNG

### OCR không thể tự động

Các script bash **KHÔNG thể tự chạy OCR** qua OpenClaw tool `pdf`. 

**Quy trình thủ công bắt buộc:**

1. **Chạy script bash** → tạo file `-qwen.md` trống
2. **OCR thủ công qua OpenClaw**:
   ```
   /pdf /opt/openclaw/.openclaw/workspace/Chuan Muc Sadi/Sadi-XXX-XXX.pdf "Trích xuất văn bản Myanmar..."
   ```
3. **Lưu kết quả OCR** vào file `-qwen.md` tương ứng
4. **Script tự động chạy hậu xử lý** (fix_myanmar_ocr.py)
5. **Hiệu đính thủ công** → tạo file `-edited.md`

### Để tự động hóa hoàn toàn

Cần tạo **OpenClaw sessions/subagents** cho mỗi batch:

```bash
# Ví dụ: Tạo session cho batch 061-065
/openclaw sessions spawn --task "OCR Sadi-061-065.pdf và hiệu đính"
```

## Theo dõi tiến độ

```bash
# Xem các file đã hoàn thành
ls -la /opt/openclaw/.openclaw/workspace/Chuan\ Muc\ Sadi/extracted/Sadi-0*-edited.md | wc -l

# Kiểm tra file qwen.md có nội dung chưa
wc -l /opt/openclaw/.openclaw/workspace/Chuan\ Muc\ Sadi/extracted/Sadi-0*-qwen.md

# Xem log (nếu có)
tail -f /tmp/sadi-batch-*.log
```

## Xử lý sự cố

### Script không chạy được
```bash
# Kiểm tra permission
ls -la sadi-batch-*.sh

# Cấp permission nếu cần
chmod +x sadi-batch-*.sh
```

### File qwen.md rỗng sau khi chạy script
- Đây là hành vi bình thường
- Cần OCR thủ công qua OpenClaw tool `pdf`

### Hậu xử lý lỗi
```bash
# Chạy lại manually
python3 /opt/openclaw/.openclaw/workspace/scripts/fix_myanmar_ocr.py /path/to/Sadi-XXX-XXX-qwen.md
```

## Files đã tạo

```
/opt/openclaw/.openclaw/workspace/scripts/
├── sadi-all-batches.sh          # Master script
├── sadi-batch-061-065.sh        # Batch 1
├── sadi-batch-066-070.sh        # Batch 2
├── sadi-batch-071-075.sh        # Batch 3
├── sadi-batch-076-080.sh        # Batch 4
├── sadi-batch-081-085.sh        # Batch 5
├── sadi-batch-086-090.sh        # Batch 6
├── sadi-batch-091-095.sh        # Batch 7
├── sadi-batch-096-100.sh        # Batch 8
└── SADI-BATCH-CRON-JOBS.md      # File hướng dẫn này
```

---

**Liên hệ:** Anh Tuấn (@zenguyen) nếu có vấn đề cần hỗ trợ.
