增加每天晚上2点定时任务

This commit is contained in:
qinyong@9artedu.com 2026-06-18 16:43:29 +08:00
parent ba243c66ce
commit 2d8623685f

View File

@ -9,36 +9,25 @@ from app.client.milvus_client_manager import milvus_client
from app.client.mysql_client_manager import db_assistant_mysql_client_manager from app.client.mysql_client_manager import db_assistant_mysql_client_manager
from app.repository.archive_messages_repository import ArchiveMessagesRepository from app.repository.archive_messages_repository import ArchiveMessagesRepository
from app.repository.milvus.summary_repository import SummaryRepository from app.repository.milvus.summary_repository import SummaryRepository
from app.summary.service import SummaryService from app.summary.service import SummaryService, build
from app.core.log import logger from app.core.log import logger
app = FastAPI(title="消息摘要服务", version="1.0") app = FastAPI(title="消息摘要服务", version="1.0")
scheduler = AsyncIOScheduler(timezone='Asia/Shanghai') scheduler = AsyncIOScheduler(timezone='Asia/Shanghai')
async def generate_daily_summary(date: Optional[str] = None): async def generate_daily_summary(date: Optional[str] = None):
logger.info("16:30分定时任务测试")
if not date: if not date:
yesterday = datetime.now() - timedelta(days=1) yesterday = datetime.now() - timedelta(days=1)
date = yesterday.strftime("%Y-%-m-%-d") # 格式: 2026-6-15 #date = yesterday.strftime("%Y-%-m-%-d") # 格式: 2026-6-15
date = datetime(yesterday.year, yesterday.month, yesterday.day)
logger.info(f"开始生成 {date} 的消息摘要...") # 按 年-月-日 无补零格式输出
date_format = f"{date.year}-{date.month}-{date.day}"
try: await build(date_format)
db_assistant_mysql_client_manager.init()
embedding_client.init()
milvus_client.init()
async with db_assistant_mysql_client_manager.session_factory() as db_assistant:
archive_messages_repository = ArchiveMessagesRepository(db_assistant)
summary_repository = SummaryRepository()
service = SummaryService(archive_messages_repository, embedding_client, summary_repository)
await service.get_message_summary(date)
logger.info(f"{date} 消息摘要生成完成") logger.info(f"{date} 消息摘要生成完成")
except Exception as e:
logger.error(f"生成摘要失败: {str(e)}", exc_info=True)
raise
finally:
await embedding_client.close()
@app.on_event("startup") @app.on_event("startup")
async def startup_event(): async def startup_event():