You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Timefold Solver作业的当前阶段?

实现求解器作业阶段状态透明的可行方案

如果你使用的是OptaPlanner这类主流调度求解器,是可以实现获取SOLVING_ACTIVE状态下细分阶段(CH构造启发式、LS局部搜索)的需求的,具体方案如下:

  • 自定义求解器事件监听器
    实现求解器框架提供的事件监听接口(比如OptaPlanner的SolverEventListener),重写对应方法(如bestSolutionChanged)。通过事件对象(SolverEvent)可以直接获取当前的SolverPhase实例,判断其类型是否为ConstructionHeuristicPhase或LocalSearchPhase,再将阶段信息与作业状态整合后推送给调度用户。

  • 直接访问求解器内部状态
    多数成熟求解器会提供内部状态访问API,比如OptaPlanner中,通过solver.getSolverStatus()确认作业处于SOLVING_ACTIVE后,可调用solver.getBestSolutionManager().getSolverPhase()获取当前细分阶段。你可以通过定时轮询或事件驱动的方式,将该状态实时同步到用户可见的界面或通知系统中。

  • 解析求解器日志获取阶段信息
    若框架未提供直接的状态访问API,可开启求解器的阶段级日志输出(调整日志级别至DEBUG),然后通过自定义日志拦截组件捕获阶段切换的日志内容(如“进入构造启发式阶段”“切换至局部搜索阶段”),解析后将状态转换为用户易懂的信息对外展示。

如果使用的是自研或小众求解器,建议在求解器内部的阶段切换逻辑中添加状态埋点,触发自定义的生命周期事件并携带阶段标识,以此实现状态的对外暴露。

内容的提问来源于stack exchange,提问作者Pezetter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 12:02:08