【问题标题】:spring batch provide status of job execution and step informationspring batch 提供作业执行状态和步骤信息
【发布时间】:2020-11-23 16:12:09
【问题描述】:

我有一个应用程序,客户端发送 HTTP 请求,这些请求被翻译成 Spring 批处理作业参数并触发作业。我为响应生成一个correlationId 以及作业执行的结果。

此时我无法获得正在运行的作业的Job_Execution_Id

获取它的方法是如果我查询以correlationId 作为键/值的BATCH_JOB_EXECUTION_PARAM 表,那么我使用条件进行查询:

where KEY_NAME='correlationId' AND STRING_VAL='12345'

这给了我JOB_EXECUTION_ID

从这里我想向我的客户提供正在运行/正在运行的作业的完整详细信息,包括当前步骤的详细信息及其状态。所以 json 有效载荷应该是这样的:

{
  "correlationId": "2ae16a63-7e91-4e37-942a-cf7f66117014",
  "jobDetails": {
    "id": 1,
    "jobId": 1,
    "jobName": "BLA BLA",
    "startTime": "2018-12-23T18:19:13.185",
    "endTime": "2018-12-23T18:19:13.223",
    "exitCode": "COMPLETED",
    "exitDescription": "",
    "status": "COMPLETED",
    "exceptions": [],
    "currentStep": "copyingAFile",
    "currentStepStatus": "RUNNING"
  },
  "_links": {
    "self": {
      "href": "http://localhost:8080/status/2ae16a63-7e91-4e37-942a-cf7f66117014"
    }
  }
}

我知道 jobexectionstepexecution 在春季批次中有一些 dao 类。我想知道的是,是否有一种方法可以通过自定义查询或弹簧批处理框架中已经存在的 dao 方法一次性获取作业执行和当前步骤执行的详细信息并插入我的响应?所有这一切都来自我的客户在端点 GET /status/{correlationId} 中调用的一个简单的correlationId

这个link 给了我一些知识,但正在查询我的客户没有的作业执行ID,而且currentStep 也没有任何关于它的状态

我不是通过作业执行 ID 来驱动这一切,因为我的作业可以异步触发,我需要立即使用相关 ID 做出响应。

【问题讨论】:

    标签: java spring spring-batch


    【解决方案1】:

    我相信你不需要那个correlationId。如果您在作业启动器上设置异步任务执行器,则作业启动器将立即返回一个带有您可以返回给客户端的 id 的 jobExecution,请参阅Running Jobs from within a Web Container

    现在有了从GET /status/{jobExecutionId} 获得的作业执行ID,您可以使用JobExplorer#getJobExecution 来获取JobExecution 及其步骤执行(使用JobExecution#getStepExecutions(),并找出当前正在使用@987654327 运行的步骤@. 有了这个,您应该能够返回您的回复。

    【讨论】:

    • 是的,当启动器异步时,执行 ID 会立即返回,但为了满足其他要求,我使用了相关性 ID。问题更多是关于返回结果作业的方式,包括作业状态和当前步骤等。无论如何要集体返回作业和步骤信息,或者我需要编写自己的自定义查询?
    • 我在回答中提到的实际上是对数据库的一次打击:JobExplorer#getJobExecution。从那里您可以获得作业执行及其步骤执行。有了它,您可以创建响应(查找作业执行状态,查找当前正在运行的步骤等)。
    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    • 2013-11-03
    • 2015-12-08
    相关资源
    最近更新 更多