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

如何实现shell触发的Spring Batch任务运行状态监控看板?

Spring Batch 任务监控看板落地方案

第一步:梳理Spring Batch元数据表结构,确认采集指标

Spring Batch 自带的元数据表已经存储了任务全链路执行数据,无需额外做业务埋点,优先锁定核心表和字段:

  • BATCH_JOB_INSTANCE:存储任务实例基础信息,包含JOB_NAME、JOB_KEY等字段
  • BATCH_JOB_EXECUTION:存储单次任务执行维度数据,核心字段包括STATUS(运行状态:COMPLETED、FAILED、RUNNING、STOPPED等)、START_TIME、END_TIME、EXIT_CODE、EXIT_MESSAGE
  • BATCH_STEP_EXECUTION:存储单步骤执行详情,可用于任务失败后的根因定位
  • 针对shell脚本触发的任务,建议在启动参数中新增triggerType=shell标识,存入BATCH_JOB_EXECUTION_PARAMS表,方便后续过滤数据

第二步:封装REST API接口拉取数据

直接基于Spring Boot封装接口即可,无需引入额外第三方组件:

  • 用JdbcTemplate或者MyBatis编写SQL查询元数据表,不需要侵入现有Spring Batch任务的业务代码
  • 按使用场景拆分接口:
    • 概览接口:返回运行中、成功、失败任务数量,今日执行总次数等大盘统计数据
    • 任务列表接口:支持按状态、时间范围、任务名称筛选,返回单次任务执行基础信息
    • 详情接口:返回单个任务执行的步骤列表、异常信息、入参等明细数据
  • 可添加1分钟级别的缓存逻辑,避免频繁查询元数据表影响原有业务性能

第三步:前端可视化看板开发

选择团队熟悉的UI框架即可,常规技术栈可以快速落地:

  • 基础框架:Vue/React都可满足需求,无需过度选型
  • 可视化组件:用ECharts即可覆盖常用展示需求:
    • 大盘数字卡:展示实时运行中任务数、今日执行成功率、平均执行时长
    • 折线图:按小时/天维度展示任务执行次数趋势
    • 饼图:展示任务状态分布占比
    • 列表页:展示所有任务执行记录,支持搜索、筛选,失败任务默认标红高亮
  • 可选实用功能:
    • 自动刷新:可配置10秒/30秒/1分钟的自动刷新周期,无需手动刷新页面
    • 异常提示:页面存在失败任务时弹出醒目提示,也可对接内部告警渠道
    • 日志关联:任务失败时可直接跳转查看对应shell脚本执行日志或Spring Batch业务日志

第四步:对齐shell触发链路的校验逻辑

因为任务由shell脚本触发,需要额外补全监控盲区:

  • shell脚本启动Spring Batch任务时,将当前进程ID、触发时间写入自定义监控表,或者直接存入Spring Batch执行参数
  • 接口返回数据时,对比shell触发记录和Spring Batch执行记录,避免出现shell调用失败、任务未启动的场景(该场景下Spring Batch元数据表无记录,会出现监控遗漏)

第五步:测试上线

  • 先在测试环境模拟各类场景:任务执行成功、失败、中途终止、长时间运行,验证看板数据的准确性
  • 上线初期可添加定时校验脚本,核对看板数据和实际任务执行情况,避免出现数据不一致问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 07:27:02