问题标签 [java-batch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
357 浏览

xml - Xml Spring批处理作业像if else一样执行

我做了春季批量工作,但我卡在了某个地方。我正在尝试在春季批处理 XML 作业中从用户那里获取参数,基于该参数我将运行不同的步骤。

例如。Argument= new 或 replace 基于 "Argument" ,将执行不同的步骤 If argument=new then step 1 Else If argument=replace then step 2 Else some error

非常感谢您的任何领导或帮助。

0 投票
1 回答
390 浏览

java - Java Batch Compiler - 通过命令行选项忽略所有警告

我看到了这些运行时编程选项: https ://help.eclipse.org/2018-12/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftask-using_batch_compiler.htm

但我想知道是否有一个命令行标志可以用来忽略编译器输出的警告(我只想查看错误)。

例如我看到:

只看错误,而不是警告。

0 投票
1 回答
195 浏览

java - Java Batch API:用于处理从 ItemReader.open() 抛出的异常的侦听器

是否有任何可以实现的侦听器接口来处理ItemReader.open()方法抛出的异常?有很多监听器接口,但似乎没有一个适合这个。即ItemReadListener仅捕获来自ItemReader.readItem()(类似于ChunkListenerItemProcessListener等)的异常

JobListenerStepListener接口,但这两个没有定义在异常情况下将被调用的方法。

有什么办法可以做到这一点?

0 投票
1 回答
121 浏览

java - 将批处理数据存储在 NoSQL 数据库中,而不是 WildFly 上 Jberet 中的文件系统中

我正在 Java EE 平台上开发一个批处理应用程序,其中 Jberet(jsr-352 实现)用于 WildFly 应用程序服务器。Jberet 默认将所有批处理数据以 XML 格式存储在本地文件系统(独立/数据下)中。这正在使用 jberet-rest 组件显示在 jberet-ui 上。我们有一个要求,我们希望将此批处理数据存储在 NoSQL 数据库(例如 mongodb 或 DynamoDB)而不是文件系统中。实现这一点的最佳方法是什么?

0 投票
2 回答
440 浏览

java - 在 Java Batch 中从阅读器获取属性

我有一个在 WildFly 上运行的 Java Batch (JSR-352) 应用程序。该应用程序正在公开一个 rest-api 以触发作业执行。我想将一些来自 HTTP REST 请求的值提供给 Reader 类。实现这一点的最佳方法是什么?

作业开始的 REST API:

我想从中读取值的读者:

另外,目前我通过读取通知对象在属性中设置字符串值,是否有更好的方法来提供整个对象?

0 投票
1 回答
550 浏览

java - 在 EJB 中安排类似 Cron 的作业

我有关注 EJB,它正在以固定延迟安排“MyJob”。

我想用类似 cron 的表达式来安排这个工作,我如何在不使用 Quartz 或任何其他框架的情况下实现这个?

编辑:更具体地说 - 我希望像 cron 这样的表达式是属性驱动的。我想动态创建调度程序,这样我就不必为多个批处理作业创建多个 bean。

0 投票
1 回答
575 浏览

java - CDI 在 jberet 实现下无法与 Java EE Batch 一起使用

我在 WildFly 应用服务器上部署了一个使用 jberet 实现的 Java EE 批处理应用程序。此应用程序还公开了一个 REST API 以按需触发作业。

我有以下类创建要注入的bean:

在 REST api 中注入上述 bean 可以正常工作:

但是,在 ItemReader 中使用相同的 bean 会引发空指针异常,但是注入 JobContext 可以正常工作:

我在 src/main/resources/META-INF 下的 beans.xml:

src/main/resources/META-INF/batch-jobs/myjob.xml 下的作业文件:

src/main/resources/META-INF/batch.xml 下的批处理工件文件

我的 pom.xml 如下所示:

我尝试了@Produce、@JobScoped (org.jberet.cdi.JobScoped) 的各种组合以及使用@JobScoped、@Default 和@ApplicationScoped 注入带注释的类,但都产生相同的结果(使用注入对象时出现 NullPointerException)。

我错过了什么?

0 投票
1 回答
82 浏览

java - 我可以为所有步骤定义一个通用 StepListener 吗?Java 批处理作业 API

我写了一个 JobStepListener 需要在每个步骤之前和之后执行。但是,每个作业都包含许多步骤(超过 1000 个步骤),并且在每个步骤中插入侦听器会很乏味,特别是因为我有多个需要此功能的作业。因此,不要像这样编写每个步骤:

有没有办法像定义作业侦听器一样,但对于每一步?

0 投票
1 回答
292 浏览

jsr352 - 批处理作业定义:如何运行动态计算的分区数?

作为批处理 API (JSR-352) 的新手,我在建模以下(简化)场景时遇到了一些困难:

  1. 假设我们有一个Batchlet在 first 中生成一组动态文件的step.
  2. 在一秒钟内,所有这些文件必须在s (via和) 中step单独处理,从而生成一组新文件。chunkItemReaderItemProcessorItemWriter
  3. 在第三个step中,这些新文件需要打包在一个大型档案中。

我找不到定义第二步的方法,因为规范似乎没有提供循环构造(在我的理解中partition,仅适用于已知固定大小的集合)。splitflow

工作 xml 定义如何?是否必须放弃第二步分块的想法,还是必须将任务分成多个工作?还有其他选择吗?

0 投票
4 回答
572 浏览

jakarta-ee - JEE Batch Job Specification with many optional Steps

Is there a way to achieve the following logic with JSR 352 Batch API? I have a series of Steps that each need to be executed based on a different condition known when starting the job. ConditionsEntity is provided by an external system.

My first attempt fails because of: com.ibm.jbatch.container.exception.BatchContainerRuntimeException: A decision cannot precede another decision. I'm adding the FAILING Code here

UPDATE I have implemented the following suggested solution with a passThroughStep. It's working correctly, but I would still love to be able to avoid all this code duplication.

The Decider

My Test