java - 在 Java Batch 中从阅读器获取属性
问题描述
我有一个在 WildFly 上运行的 Java Batch (JSR-352) 应用程序。该应用程序正在公开一个 rest-api 以触发作业执行。我想将一些来自 HTTP REST 请求的值提供给 Reader 类。实现这一点的最佳方法是什么?
作业开始的 REST API:
@PUT
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response handleFileReady(MyNotification notification) {
final Properties jobParams = new Properties();
jobParams.setProperty("filename", notification.getFileName());
BatchRuntime.getJobOperator().start("filetransfer", jobParams);
return Response.status(Response.Status.NO_CONTENT).build();
}
我想从中读取值的读者:
public class MyJobReader extends AbstractItemReader {
@Override
public Integer readItem() throws Exception {
// Get Values here
...
另外,目前我通过读取通知对象在属性中设置字符串值,是否有更好的方法来提供整个对象?
解决方案
通过注入 JobContext 我现在可以获得执行 ID:
public class MyJobReader extends AbstractItemReader {
@Inject
private JobContext jobContext;
@Override
public Integer readItem() throws Exception {
Properties pros = BatchRuntime.getJobOperator().getParameters(jobContext.getExecutionId());
推荐阅读
- python - Django FormWizard 针对同一个表单多次提交
- django-rest-framework - 如何从序列化程序中删除字段
- android - 华为游戏服务问题,实名认证页面无法调用
- php - 如何向前瞻、后向正则表达式添加额外的捕获组
- android - 找到多个文件,其独立于操作系统的路径为 'org/apache/commons/csv/QuoteMode.java'
- airflow - 气流 - 分支而不连接
- mysql - 如何将 187.5 字符串转换为数字并插入到 mysql 的 Decimal(3,1) 列中?
- r - 使用 ODBC 连接将数据从 SQL Server 复制到 R
- r - 在 plot_ly 中覆盖散点区域
- html - 在 iPhone 上查看时背景图像消失