#!/bin/bash # 监控批处理任务状态 set -e BATCH_ID_FILE="batch_id.txt" # 获取 Batch ID if [ -n "$1" ]; then BATCH_ID=$1 elif [ -f "$BATCH_ID_FILE" ]; then BATCH_ID=$(cat $BATCH_ID_FILE) else echo "❌ 错误: 请提供 Batch ID" echo "用法: $0 " echo "或确保 batch_id.txt 文件存在" exit 1 fi echo "🔍 监控 Batch 任务: $BATCH_ID" echo "按 Ctrl+C 退出监控" echo "========================================" while true; do TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S') echo "" echo "[$TIMESTAMP]" STATUS_OUTPUT=$(python3 generate_problems_batch.py status $BATCH_ID) echo "$STATUS_OUTPUT" # 检查是否完成 if echo "$STATUS_OUTPUT" | grep -q "Status: completed"; then echo "" echo "✅ 批处理已完成!" echo "" echo "下载结果:" echo " python3 generate_problems_batch.py download $BATCH_ID --output batch_results_raw.jsonl" echo "" echo "处理结果:" echo " python3 generate_problems_batch.py process --input batch_results_raw.jsonl --output programming_problems_batch.jsonl" break elif echo "$STATUS_OUTPUT" | grep -q "Status: failed"; then echo "" echo "❌ 批处理失败!" break elif echo "$STATUS_OUTPUT" | grep -q "Status: expired"; then echo "" echo "❌ 批处理已过期!" break fi echo "⏳ 等待 5 分钟后再次检查..." sleep 300 done