查询以包括 spring 批处理作业参数值以及作业执行数据
Posted
技术标签:
【中文标题】查询以包括 spring 批处理作业参数值以及作业执行数据【英文标题】:query to include spring batch job param value along with job execution data 【发布时间】:2020-07-27 12:58:40 【问题描述】:对于 Spring 批处理作业,我有诸如 requestName
和 responseId
之类的作业参数,它们位于 BATCH_JOB_EXECUTION_PARAMS
表中。
JOB_EXECUTION_ID | KEY_NAME | STRING_VAL
2 | responseId | f5e1b3e9
2 | requestName | DUMMY
我正在使用以下查询检索有关作业执行的详细信息:
SELECT je.JOB_EXECUTION_ID,
je.START_TIME,
je.END_TIME,
je.STATUS,
je.EXIT_CODE,
je.EXIT_MESSAGE,
ji.JOB_INSTANCE_ID,
ji.JOB_NAME,
--add requestName STRING_VAL
FROM BATCH_JOB_EXECUTION je
INNER JOIN BATCH_JOB_EXECUTION_PARAMS p ON je.JOB_EXECUTION_ID = p.JOB_EXECUTION_ID
INNER JOIN BATCH_JOB_INSTANCE ji ON je.JOB_INSTANCE_ID = ji.JOB_INSTANCE_ID
WHERE p.KEY_NAME = 'responseId' AND p.STRING_VAL = 'f5e1b3e9'
如何在我的查询中填充requestName
的值?因此,对于 ID 为 2 的 JobExecution,它会返回一个附加列 REQUEST_NAME
,其值为 DUMMY
【问题讨论】:
【参考方案1】:@MO6H 像这样加入另一个BATCH_JOB_EXECUTION_PARAMS
实例:
SELECT je.JOB_EXECUTION_ID,
je.START_TIME,
je.END_TIME,
je.STATUS,
je.EXIT_CODE,
je.EXIT_MESSAGE,
ji.JOB_INSTANCE_ID,
ji.JOB_NAME,
p2.STRING_VAL AS `REQUEST_NAME` -- add requestName STRING_VAL
FROM BATCH_JOB_EXECUTION je
INNER JOIN BATCH_JOB_EXECUTION_PARAMS p ON je.JOB_EXECUTION_ID = p.JOB_EXECUTION_ID
INNER JOIN BATCH_JOB_INSTANCE ji ON je.JOB_INSTANCE_ID = ji.JOB_INSTANCE_ID
JOIN BATCH_JOB_EXECUTION_PARAMS AS p2 ON p2.JOB_EXECUTION_ID = p.JOB_EXECUTION_ID
WHERE p.KEY_NAME = 'responseId'
AND p.STRING_VAL = 'f5e1b3e9'
AND p2.KEY_NAME = 'requestName'
如果这不能满足您的要求,请告诉我,我会尽力提供帮助。
【讨论】:
@MO6H 我刚刚意识到您希望额外的列显示为REQUEST_NAME
,我刚刚修改了我的答案,因此该列将显示为REQUEST_NAME
,然后为您提供您正在寻找的值以上是关于查询以包括 spring 批处理作业参数值以及作业执行数据的主要内容,如果未能解决你的问题,请参考以下文章
在 Spring Batch 中以最后处理的记录作为 jobParameter 启动一个新的作业实例?
如何将 JobParameters 传递给 Spring Cloud Task 启动的批处理作业?