58 lines
1.8 KiB
Python
58 lines
1.8 KiB
Python
|
|
#!/usr/bin/env python3
|
|||
|
|
"""
|
|||
|
|
测试Redis连接和LLM任务队列
|
|||
|
|
"""
|
|||
|
|
import sys
|
|||
|
|
import os
|
|||
|
|
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
|||
|
|
|
|||
|
|
import redis
|
|||
|
|
from app.core.config import REDIS_CONFIG
|
|||
|
|
|
|||
|
|
# 连接Redis
|
|||
|
|
redis_client = redis.Redis(**REDIS_CONFIG)
|
|||
|
|
|
|||
|
|
try:
|
|||
|
|
# 测试连接
|
|||
|
|
redis_client.ping()
|
|||
|
|
print("✅ Redis连接成功")
|
|||
|
|
|
|||
|
|
# 检查任务队列
|
|||
|
|
queue_length = redis_client.llen("llm_task_queue")
|
|||
|
|
print(f"📋 当前任务队列长度: {queue_length}")
|
|||
|
|
|
|||
|
|
# 检查所有LLM任务
|
|||
|
|
keys = redis_client.keys("llm_task:*")
|
|||
|
|
print(f"📊 当前存在的LLM任务: {len(keys)} 个")
|
|||
|
|
|
|||
|
|
for key in keys:
|
|||
|
|
task_data = redis_client.hgetall(key)
|
|||
|
|
# key可能是bytes或str
|
|||
|
|
if isinstance(key, bytes):
|
|||
|
|
task_id = key.decode('utf-8').replace('llm_task:', '')
|
|||
|
|
else:
|
|||
|
|
task_id = key.replace('llm_task:', '')
|
|||
|
|
|
|||
|
|
# 获取状态和进度
|
|||
|
|
status = task_data.get(b'status', task_data.get('status', 'unknown'))
|
|||
|
|
if isinstance(status, bytes):
|
|||
|
|
status = status.decode('utf-8')
|
|||
|
|
|
|||
|
|
progress = task_data.get(b'progress', task_data.get('progress', '0'))
|
|||
|
|
if isinstance(progress, bytes):
|
|||
|
|
progress = progress.decode('utf-8')
|
|||
|
|
|
|||
|
|
print(f" - 任务 {task_id[:8]}... 状态: {status}, 进度: {progress}%")
|
|||
|
|
|
|||
|
|
# 如果任务是pending,重新推送到队列
|
|||
|
|
if status == 'pending':
|
|||
|
|
print(f" 🔄 发现pending任务,重新推送到队列...")
|
|||
|
|
redis_client.lpush("llm_task_queue", task_id)
|
|||
|
|
print(f" ✅ 任务 {task_id[:8]}... 已重新推送到队列")
|
|||
|
|
|
|||
|
|
except redis.ConnectionError as e:
|
|||
|
|
print(f"❌ Redis连接失败: {e}")
|
|||
|
|
except Exception as e:
|
|||
|
|
print(f"❌ 错误: {e}")
|
|||
|
|
import traceback
|
|||
|
|
traceback.print_exc()
|