feat: 实现 Agent 定时任务系统 — 按 cron 表达式周期执行 Agent
- 新增 AgentSchedule 模型、CRUD API、调度服务 - 集成 Celery Beat 每分钟检查到期任务并自动触发执行 - 支持手动触发、cron 表达式解析、执行状态跟踪 - 依赖: croniter (cron 表达式解析) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -2,13 +2,18 @@
|
||||
Celery 应用配置
|
||||
"""
|
||||
from celery import Celery
|
||||
from celery.schedules import crontab
|
||||
from app.core.config import settings
|
||||
|
||||
celery_app = Celery(
|
||||
"aiagent",
|
||||
broker=settings.REDIS_URL,
|
||||
backend=settings.REDIS_URL,
|
||||
include=["app.tasks.workflow_tasks", "app.tasks.agent_tasks"]
|
||||
include=[
|
||||
"app.tasks.workflow_tasks",
|
||||
"app.tasks.agent_tasks",
|
||||
"app.tasks.scheduler_tasks",
|
||||
]
|
||||
)
|
||||
|
||||
celery_app.conf.update(
|
||||
@@ -21,3 +26,11 @@ celery_app.conf.update(
|
||||
task_time_limit=30 * 60, # 30分钟
|
||||
task_soft_time_limit=25 * 60, # 25分钟
|
||||
)
|
||||
|
||||
# Celery Beat 定时调度配置
|
||||
celery_app.conf.beat_schedule = {
|
||||
"check-agent-schedules-every-minute": {
|
||||
"task": "app.tasks.scheduler_tasks.check_agent_schedules_task",
|
||||
"schedule": crontab(minute="*"), # 每分钟检查
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user