从 Batchlet 内部获取 jobId
Getting jobId from inside of Batchlet
我需要从正在执行的 batchlet 中获取 jobId。我已经能够从我启动 Batchlet 的 class 中获取 jobId,但不能从 Batchlet 内部获取。
long jobId = job.start("BatchletName", parm);
这句话启动 Batchlet "BatchletName"。现在,我需要从内部获取 jobId 值 de class BatchletName.java:
@Dependent
@Named("BatchletName")
@TransactionManagement(TransactionManagementType.BEAN)
public class BatchletName extends AbstractBatchlet {
public String process() throws Exception {
// I need jobId here
return "";
}
}
提前谢谢你。
您可以将 javax.batch.runtime.context.JobContext
注入您的 batchlet class,然后调用 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 "";
}
}
我需要从正在执行的 batchlet 中获取 jobId。我已经能够从我启动 Batchlet 的 class 中获取 jobId,但不能从 Batchlet 内部获取。
long jobId = job.start("BatchletName", parm);
这句话启动 Batchlet "BatchletName"。现在,我需要从内部获取 jobId 值 de class BatchletName.java:
@Dependent
@Named("BatchletName")
@TransactionManagement(TransactionManagementType.BEAN)
public class BatchletName extends AbstractBatchlet {
public String process() throws Exception {
// I need jobId here
return "";
}
}
提前谢谢你。
您可以将 javax.batch.runtime.context.JobContext
注入您的 batchlet class,然后调用 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 "";
}
}