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() |