[英]Java batch processing job listener afterJob get id of a job
How can detect a job id of finished job that is calling afterJob listener? 如何检测调用afterJob监听器的已完成作业的作业ID? I have job that is starting in batch processing and i have listener.
我的工作是从批处理开始,我有听众。
My job is called PayrollJob and the listener is PayrollJobListener 我的工作叫做PayrollJob,监听器是PayrollJobListener
<job id="payroll" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0">
<listeners>
<listener ref="payrollJobListener"/>
</listeners>
<step id="process">
<listeners>
<listener ref="payrollItemWriteListener"/>
<listener ref="payrollSkipProcessorListener"/>
<listener ref="payrollSkipReadListener"/>
<listener ref="payrollSkipWriteListener"/>
<listener ref="payrollChunkListener"/>
</listeners>
<chunk item-count="5">
<reader ref="PayrollItemReader"></reader>
<processor ref="PayrollItemProcessor"></processor>
<writer ref="PayrollItemWriter"></writer>
</chunk>
</step>
</job>
and class with listener 和听众一起上课
@Named()
public class PayrollJobListener extends AbstractJobListener {
@Override()
public void beforeJob(){};
@Override()
public void afterJob(){
System.out.println("i need a id of a job calling this method");
};
}
You can inject a JobContext. 您可以注入JobContext。
@Named()
public class PayrollJobListener extends AbstractJobListener {
@Inject
private JobContext jobContext;
@Override()
public void beforeJob(){};
@Override()
public void afterJob(){
long id = this.jobContext.getExecutionId();
String name = this.jobContext.getJobName();
};
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.