checkpoint: 调度任务存储落 PG——jobstore 归一 default + execute 写回真实触发 + 前端 store 字典更新
- ap_scheduler: 默认分组改 SQLAlchemyJobStore on PG,删 RedisJobStore 与 redis_instance;注释/告警口径同步 - node/service: jobstore 归一 default(兼容存量 sqlalchemy 名);cron/interval/date 写回 task_node.trigger/trigger_args(前端列表可见真实触发);run_job_now 用独立临时 id,不再覆盖节点既有排程 - enums: 删 APSCHEDULER_LOCK_KEY(jobstore 落 PG 后死锁) - sys_dict_data: sys_job_store 字典归一 default,删 sqlalchemy 档 - 前端: 任务表单 store 选项与 default 归一
This commit is contained in:
@@ -40,7 +40,7 @@ async def lifespan(app: FastAPI) -> AsyncGenerator[Any, Any]:
|
||||
else:
|
||||
logger.warning(
|
||||
"⚠️ Redis 不可用,以降级模式启动:参数/字典读接口回源数据库;"
|
||||
"登录会话/在线监控/AI配置/调度任务接口将返回 503"
|
||||
"登录会话/在线监控/AI配置接口将返回 503(调度任务 jobstore 已落 PG,不受影响)"
|
||||
)
|
||||
|
||||
from app.utils.dict_util import preload_value2label_cache
|
||||
@@ -50,11 +50,11 @@ async def lifespan(app: FastAPI) -> AsyncGenerator[Any, Any]:
|
||||
|
||||
scheduler_ready = False
|
||||
try:
|
||||
await SchedulerUtil.init_scheduler(redis=app.state.redis)
|
||||
await SchedulerUtil.init_scheduler()
|
||||
scheduler_ready = SchedulerUtil.is_running()
|
||||
logger.info("✅ 定时任务调度器初始化完成")
|
||||
except Exception as e:
|
||||
# Redis 不可达时默认 jobstore 连不上:不阻断启动,任务接口降级为 503
|
||||
# 调度器初始化失败(jobstore 已落 PG,与主库同生共死):不阻断启动
|
||||
SchedulerUtil.shutdown(wait=False)
|
||||
logger.error("❌ 定时任务调度器初始化失败(继续启动,任务接口将返回 503): {}", e)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user