如何在不按特定时间间隔轮询批处理作业执行表的情况下侦听spring批处理作业状态的变化?

时间:2019-03-22 20:49:19

标签: spring spring-boot spring-batch

我们知道Spring Batch作业在运行过程中会经历以下状态,我想实时收听这些状态更改,并以当前状态对其余api进行后期调用。

例如: 1.当作业“ X”启动时,其初始状态为“ STARTING”,我想收听此状态更改并调用rest api 2.当作业“ X”的状态更改为“开始”时,我想收听此状态更改并致电Rest API ...

你明白了吧?

春季间歇作业的不同状态

  • 已放弃
  • 已完成
  • 失败
  • 开始
  • 开始
  • 已停止
  • 停止
  • 未知

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

1 个答案:

答案 0 :(得分:0)

  

我怎样才能听清Java代码中的那些更改?

这是可能的,但并非所有状态更改都可以。 JobExecutionListener可让您在以下情况下收到通知:

  • 工作开始(状态STARTING-> STARTED
  • 以及结束时间(状态STARTED-> [STOPPED | COMPLETED | FAILED]。

希望这会有所帮助。