重写为 AI 情报 Agent 并接入 Jenkins 流水线
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
from apscheduler.schedulers.background import BackgroundScheduler
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.agent.runner import AgentRunner
|
||||
from app.core.config import Settings
|
||||
from app.db.session import SessionLocal
|
||||
|
||||
|
||||
def run_scheduled_job(settings: Settings) -> None:
|
||||
# 定时任务不在请求生命周期内,需要自己创建和关闭数据库会话。
|
||||
db: Session = SessionLocal()
|
||||
try:
|
||||
AgentRunner(db=db, settings=settings).run_daily()
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
|
||||
def build_scheduler(settings: Settings) -> BackgroundScheduler:
|
||||
# APScheduler负责每日后台运行,服务启动后自动挂载任务。
|
||||
scheduler = BackgroundScheduler(timezone=settings.agent_timezone)
|
||||
scheduler.add_job(
|
||||
run_scheduled_job,
|
||||
trigger="cron",
|
||||
hour=settings.agent_cron_hour,
|
||||
minute=settings.agent_cron_minute,
|
||||
args=[settings],
|
||||
id="daily-intelligence",
|
||||
replace_existing=True,
|
||||
)
|
||||
return scheduler
|
||||
Reference in New Issue
Block a user