首页 > 解决方案 > 如何在不按一定时间间隔轮询批处理作业执行表的情况下监听spring批处理作业状态的变化?

问题描述

正如我们所知,spring批处理作业在运行过程中会经历以下状态,我想实时监听这些状态变化,并以当前状态对rest api进行发布调用。

例如: 1.当作业“X”启动时,其初始状态为“STARTING”,我想监听此状态变化并调用 rest api 2.当作业“X”状态更改为“ STARTED',然后我想听听这个状态变化并调用rest api ...

你明白了,对吧?

春季批量作业的不同状态

我知道作业存储库负责对 batch_job_execution 表进行 CRUD 操作,但是我如何才能从 java 代码中监听这些更改?

标签: springspring-bootspring-batch

解决方案


我怎样才能从 java 代码中听到这些变化?

这是可能的,但不适用于所有状态更改。允许您在以下JobExecutionListener情况下收到通知:

  • 工作开始(状态STARTING-> STARTED
  • 当它完成时(状态STARTED-> [ STOPPED| COMPLETED| FAILED]。

希望这可以帮助。


推荐阅读