1

我需要从执行 batchlet 内部获取 jobId。我已经能够从我正在启动 Batchlet 的类中获取 jobId,但不能从 Batchlet 内部获取。

long jobId = job.start("BatchletName", parm);

这句话启动了 Batchlet “BatchletName”。现在,我需要从类 BatchletName.java 中获取 jobId 值:

@Dependent
@Named("BatchletName")
@TransactionManagement(TransactionManagementType.BEAN)
public class BatchletName extends AbstractBatchlet {
    public String process() throws Exception {
        // I need jobId here
        return "";
    }    
}

先感谢您。

4

1 回答 1

1

您可以注入javax.batch.runtime.context.JobContext您的 batchlet 类,然后调用JobContext.getJobName()来获取作业 ID。

import javax.batch.runtime.context.JobContext;
import javax.inject.Inject;
import javax.inject.Named;

@Dependent
@Named("BatchletName")
public class BatchletName extends AbstractBatchlet {
    @Inject
    JobContext jobContext;

    public String process() throws Exception {
        // I need jobId here

        String jobId = jobContext.getJobName();
        return "";
    }  
}
于 2017-10-26T11:32:39.803 回答