增加组装推送消息的逻辑
This commit is contained in:
105
test_redis.py
Normal file
105
test_redis.py
Normal file
@@ -0,0 +1,105 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Redis 连接测试脚本
|
||||
"""
|
||||
import os
|
||||
import sys
|
||||
import asyncio
|
||||
|
||||
# 添加项目根目录到Python路径
|
||||
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
from app.config import settings
|
||||
from app.logger import get_logger
|
||||
|
||||
logger = get_logger("redis_test")
|
||||
|
||||
async def test_redis_connection():
|
||||
"""测试 Redis 连接"""
|
||||
logger.info("🔴 测试 Redis 连接...")
|
||||
|
||||
try:
|
||||
import redis.asyncio as redis
|
||||
|
||||
# 创建 Redis 客户端
|
||||
redis_client = redis.from_url(settings.celery_broker_url)
|
||||
|
||||
# 测试连接
|
||||
await redis_client.ping()
|
||||
|
||||
logger.info("✅ Redis 连接成功")
|
||||
|
||||
# 测试基本操作
|
||||
test_key = "test_connection"
|
||||
test_value = "Hello Redis!"
|
||||
|
||||
await redis_client.set(test_key, test_value, ex=60) # 设置60秒过期
|
||||
retrieved_value = await redis_client.get(test_key)
|
||||
|
||||
if retrieved_value == test_value:
|
||||
logger.info("✅ Redis 读写操作正常")
|
||||
else:
|
||||
logger.warning("⚠️ Redis 读写操作异常")
|
||||
|
||||
# 清理测试数据
|
||||
await redis_client.delete(test_key)
|
||||
|
||||
# 关闭连接
|
||||
await redis_client.close()
|
||||
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"❌ Redis 连接失败: {e}")
|
||||
return False
|
||||
|
||||
async def test_celery_redis():
|
||||
"""测试 Celery 相关的 Redis 操作"""
|
||||
logger.info("🌿 测试 Celery Redis 配置...")
|
||||
|
||||
try:
|
||||
import redis.asyncio as redis
|
||||
|
||||
# 测试 Broker 连接
|
||||
broker_client = redis.from_url(settings.celery_broker_url)
|
||||
await broker_client.ping()
|
||||
logger.info(f"✅ Celery Broker (Redis) 连接成功: {settings.celery_broker_url}")
|
||||
|
||||
# 测试 Backend 连接
|
||||
backend_client = redis.from_url(settings.celery_result_backend)
|
||||
await backend_client.ping()
|
||||
logger.info(f"✅ Celery Backend (Redis) 连接成功: {settings.celery_result_backend}")
|
||||
|
||||
# 关闭连接
|
||||
await broker_client.close()
|
||||
await backend_client.close()
|
||||
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"❌ Celery Redis 测试失败: {e}")
|
||||
return False
|
||||
|
||||
async def main():
|
||||
"""主函数"""
|
||||
logger.info("🧪 开始 Redis 连接测试...")
|
||||
|
||||
# 显示配置信息
|
||||
logger.info(f"📡 Celery Broker: {settings.celery_broker_url}")
|
||||
logger.info(f"💾 Celery Backend: {settings.celery_result_backend}")
|
||||
|
||||
# 测试基础连接
|
||||
basic_ok = await test_redis_connection()
|
||||
|
||||
# 测试 Celery 连接
|
||||
celery_ok = await test_celery_redis()
|
||||
|
||||
if basic_ok and celery_ok:
|
||||
logger.info("🎉 所有 Redis 测试通过!")
|
||||
return 0
|
||||
else:
|
||||
logger.error("❌ Redis 测试失败")
|
||||
return 1
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(asyncio.run(main()))
|
||||
Reference in New Issue
Block a user