去掉redis

启动时只检查数据库连接不更新表结构
This commit is contained in:
mark.tian
2025-12-04 08:35:33 +08:00
parent 6ac998ebdf
commit 7aeb84df37
7 changed files with 19 additions and 45 deletions

View File

@@ -1,12 +1,6 @@
# 数据库配置 # 数据库配置
DATABASE_URL=postgresql+asyncpg://user:password@localhost:5432/ai_talk_callback_db DATABASE_URL=postgresql+asyncpg://user:password@localhost:5432/ai_talk_callback_db
# Redis配置
REDIS_URL=redis://localhost:6379/0
REDIS_LOCK_TIMEOUT=30
REDIS_LOCK_RETRY_DELAY=0.1
REDIS_LOCK_MAX_RETRIES=100
# 业务配置 # 业务配置
COUNT_THRESHOLD=3 COUNT_THRESHOLD=3
EXTERNAL_API_ENABLED=false EXTERNAL_API_ENABLED=false

View File

@@ -5,12 +5,6 @@ class Settings(BaseSettings):
# 数据库配置 # 数据库配置
database_url: str = "" database_url: str = ""
# Redis配置
redis_url: str = "redis://localhost:6379/0"
redis_lock_timeout: int = 30 # 锁超时时间(秒)
redis_lock_retry_delay: float = 0.1 # 锁重试延迟(秒)
redis_lock_max_retries: int = 100 # 最大重试次数
# 业务配置 # 业务配置
count_threshold: int = 3 # count阈值,大于等于此值直接返回 count_threshold: int = 3 # count阈值,大于等于此值直接返回
external_api_enabled: bool = False # 是否启用外部API调用 external_api_enabled: bool = False # 是否启用外部API调用

View File

@@ -106,5 +106,4 @@ def get_logger(name: Optional[str] = None) -> logging.Logger:
app_logger = get_logger("app") app_logger = get_logger("app")
api_logger = get_logger("api") api_logger = get_logger("api")
db_logger = get_logger("database") db_logger = get_logger("database")
redis_logger = get_logger("redis")
external_api_logger = get_logger("external_api") external_api_logger = get_logger("external_api")

View File

@@ -167,15 +167,6 @@ async def ai_talk_callback(
AI Talk回调接口处理 AI Talk回调接口处理
""" """
try: try:
# 参数校验
if not callback_data:
logger.error("❌ callback_data 参数为空")
raise HTTPException(status_code=400, detail="callback_data 参数不能为空")
if not isinstance(callback_data.get('data'), list):
logger.error(f"❌ data 参数类型无效: {type(callback_data.get('data'))}")
raise HTTPException(status_code=400, detail="data 参数必须是数组")
# 记录回调请求(包含siteId) # 记录回调请求(包含siteId)
success, callback_log_id = await log_callback_request(db, request, siteId, callback_data) success, callback_log_id = await log_callback_request(db, request, siteId, callback_data)

33
main.py
View File

@@ -1,10 +1,10 @@
from fastapi import FastAPI from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware from fastapi.middleware.cors import CORSMiddleware
from contextlib import asynccontextmanager from contextlib import asynccontextmanager
from sqlalchemy import text
from app.config import settings from app.config import settings
from app.database import init_db from app.database import engine
from app.redis_lock import redis_manager
from app.routes import router from app.routes import router
from app.logger import get_logger, LoggerManager from app.logger import get_logger, LoggerManager
@@ -20,15 +20,20 @@ async def lifespan(app: FastAPI):
logger.info("🚀 应用启动中...") logger.info("🚀 应用启动中...")
try: try:
# 初始化数据库 # 验证数据库连接
logger.info("📊 初始化数据库连接...") logger.info("📊 验证数据库连接...")
await init_db() try:
logger.info("✅ 数据库连接成功") async with engine.begin() as conn:
# 执行简单的查询来验证连接
# 初始化Redis result = await conn.execute(text("SELECT 1"))
logger.info("🔴 初始化Redis连接...") connection_test = result.scalar()
await redis_manager.connect() if connection_test == 1:
logger.info("✅ Redis连接成功") logger.info("✅ 数据库连接验证成功")
else:
raise Exception("数据库连接测试失败")
except Exception as db_error:
logger.error(f"❌ 数据库连接验证失败: {db_error}")
raise
logger.info(f"🎉 {settings.app_name} 启动完成!") logger.info(f"🎉 {settings.app_name} 启动完成!")
yield yield
@@ -40,12 +45,6 @@ async def lifespan(app: FastAPI):
finally: finally:
# 关闭时清理 # 关闭时清理
logger.info("🛑 应用关闭中...") logger.info("🛑 应用关闭中...")
try:
await redis_manager.disconnect()
logger.info("✅ Redis连接已关闭")
except Exception as e:
logger.error(f"❌ Redis关闭时出错: {e}")
logger.info("👋 应用已关闭") logger.info("👋 应用已关闭")

View File

@@ -3,7 +3,6 @@ uvicorn[standard]>=0.38.0
sqlalchemy>=2.0.44 sqlalchemy>=2.0.44
asyncpg>=0.13.0 asyncpg>=0.13.0
alembic>=1.17.2 alembic>=1.17.2
redis[hiredis]>=7.1.0
pydantic>=2.12.5 pydantic>=2.12.5
pydantic-settings>=2.12.0 pydantic-settings>=2.12.0
python-multipart>=0.0.20 python-multipart>=0.0.20

View File

@@ -139,7 +139,6 @@ async def main():
print("🚀 开始数据库初始化...") print("🚀 开始数据库初始化...")
print(f"📋 配置信息:") print(f"📋 配置信息:")
print(f" - 数据库URL: {settings.database_url}") print(f" - 数据库URL: {settings.database_url}")
print(f" - Redis URL: {settings.redis_url}")
print(f" - 应用名称: {settings.app_name}") print(f" - 应用名称: {settings.app_name}")
print(f" - 外部API URL: {settings.external_api_url}") print(f" - 外部API URL: {settings.external_api_url}")
print() print()
@@ -164,10 +163,9 @@ async def main():
print("🎉 数据库初始化完成!") print("🎉 数据库初始化完成!")
print("\n📝 下一步:") print("\n📝 下一步:")
print(" 1. 配置 .env 文件中的数据库连接信息") print(" 1. 配置 .env 文件中的数据库连接信息")
print(" 2. 确保 Redis 服务正在运行") print(" 2. 运行应用: python main.py")
print(" 3. 运行应用: python main.py") print(f" 3. 访问API文档: http://localhost:8000/docs")
print(f" 4. 访问API文档: http://localhost:8000/docs") print(f" 4. 接口地址: POST /ai-talk/callback/{{siteId}}/failure")
print(f" 5. 接口地址: POST /ai-talk/callback/{{siteId}}/failure")
if __name__ == "__main__": if __name__ == "__main__":