Files
aiagent/backend/app/tasks/scheduler_tasks.py

28 lines
890 B
Python
Raw Normal View History

"""
Celery Beat 定时调度任务 每分钟检查并触发到期的 Agent 定时任务
"""
from __future__ import annotations
import logging
from app.core.tools_bootstrap import ensure_builtin_tools_registered
ensure_builtin_tools_registered()
from app.core.celery_app import celery_app
from app.services.agent_schedule_service import check_and_run_due_schedules
logger = logging.getLogger(__name__)
@celery_app.task(bind=True, max_retries=0)
def check_agent_schedules_task(self):
"""检查所有到期的 Agent 定时任务并触发执行。
Celery Beat 每分钟调度一次 Redis/Worker 短暂不可用
下次心跳仍会捕获到期的任务next_run_at 不会因错过而丢失
"""
triggered = check_and_run_due_schedules()
if triggered:
logger.info("定时任务检查完成: 本次触发 %d 个任务", triggered)