标签: jsr352

JSR 352(Java 批处理)有哪些实现?

我们可以说Spring Batch是 JSR 352(Java 平台批处理应用程序规范)的实现吗?

JSR 352 还有哪些其他实现?

jsr spring-batch jsr352

6
推荐指数
1
解决办法
2421
查看次数

具有可重试和可跳过异常的jsr 352批处理可能会多次处理项目

我有一个用JSR-352(在wildfly上使用jberet)实现的批处理。

我有一个项目计数为15的块,并java.lang.Exception配置为可重试和可跳过的异常。

当有很多例外时,大多数项目将被多次处理。在这种极端情况下,所有项目都会在编写器中引发异常:

  • 读取前15个项目
  • 第一项发生例外
  • 块将回滚并配置为item-count = 1
  • 第一项被阅读
  • 再次发生异常,项目被跳过
  • 继续进行其他14个项目,每个项目可能会发生异常,每个项目都将被跳过
  • 在前15个项目之后,该块以item-count = 15返回
  • 读取项目16-30
  • 再次发生异常
  • 阅读器回滚到最新的检查点

此时,由于没有成功的已处理项目,因此仍然没有检查点。因此,读者再次从第一项开始。所有30个项目的item-count = 1等。

如果存在许多此类失败,则批次将一次又一次地处理所有项目。

我认为也需要为跳过的项目设置检查点,因为跳过的项目不应该再次处理。

我认为这是规范中的错误,所以我已经在那打开了一个问题:https : //github.com/WASdev/standards.jsr352.batch-spec/issues/15 还是我错了,并且误解了实现?

在Spring Batch中如何实现?

java java-ee jsr352 jbatch jberet

5
推荐指数
1
解决办法
273
查看次数

在 JSR 352 中如何定义一个好的分区计划来保证 CPU 平衡?

JSR 352 - Java 平台的批处理应用程序使用分区提供并行功能。批处理运行时可以在不同的分区中执行一个步骤以加快进度。JSR 352 还引入了threads定义:我们可以定义要使用的线程数,例如

<step id="Step1">
    <chunk .../>
        <partition>
            <plan partitions="3" threads="2"/>
        </partition>
    </chunk>
</step>
Run Code Online (Sandbox Code Playgroud)

然后我就很困惑:如何给出一个赞赏的分区计划,使每个线程都被占用并确保CPU平衡?

例如,有表A、B、C要做,它们的行分别是10亿、100万、1000。该步骤旨在将这些实体处理为文档,一个实体转到一个文档。文件制作的顺序并不重要。这些表实体的CPU时间分别为1s、2s、5s。线程数为 4。

如果有 3 个分区,每个表类型一个,那么该步骤将需要1 * 10^9几秒钟才能完成,因为:

  • 分区 A1 * 10^9 * 1s = 1 * 10^9s在线程 2 上运行
  • 分区 B1 * 10^6 * 2s = 2 * 10^6s在线程 3 上运行
  • 分区 C1 * 10^3 * 5s = 5 * 10^3s在线程 4 上运行

然而,当线程 2 被占用时,线程 3 …

multithreading jsr352 jakarta-ee

5
推荐指数
1
解决办法
1247
查看次数

Spring Batch JSR 352 Skip-Limit如何获得默认无限制或设置无限制

我试图弄清楚如何为跳过限制设置无限值,而不仅仅是随机定义一个非常大的整数值。

jsr 352 特别指出“默认没有限制”。但我还没有弄清楚在实际定义可跳过异常时如何获得默认值。

我尝试了 0 和 -1,但都未能通过 Spring Batch 在创建作业时的步骤中执行的正数验证。如果在定义了可跳过异常时未添加跳过限制属性,则会生成错误并且不会启动作业。

我是否误解了规范的内容,或者 Spring Batch 在这种情况下没有正确实现 jsr?从表面上看,skip-limit 应该有某种默认为无限值的方法。

spring-batch jsr352

5
推荐指数
2
解决办法
8315
查看次数

如何在WebSphere Liberty Batch中配置事务超时?

  • javax.transaction.global.timeout的作用是什么?
  • 我是否需要在CheckpointAlgorithm中实现checkpointTimeout()方法 ?
  • 服务器配置级别上有什么吗?它如何与应用程序级别设置的内容交互?

java websphere-liberty java-batch jsr352

4
推荐指数
1
解决办法
4576
查看次数

JSR 352:如何从分区步骤的每个分区的写入器收集数据?

因此,我在写入数据库的步骤中有 2 个分区。我想记录每个分区写入的行数,得到总和,打印到日志中;

我正在考虑static在编写器中使用变量并使用步骤上下文/作业上下文将其放入afterStep()步骤侦听器中。然而,当我尝试时,我得到了null。我能够从close()Reader 中获取这些值。

这是正确的做法吗?或者我应该使用分区收集器/减速器/分析器?

我在 Websphere Liberty 中使用 java 批处理。我正在 Eclipse 中开发。

java-batch jsr352

4
推荐指数
1
解决办法
914
查看次数

在z/OS上运行部署在Liberty概要文件中的Java批处理

在z/OS上运行java批处理程序的方法在z/OS上相对较新,或者已经很长时间了吗?

这个问题背后的原因是因为,我听说IBM这是一个相对较新的尝试,并且市场上没有太多的实时系统在这种方法中运行.真的吗 ?

注意:我知道JSR352已经存在了很长一段时间但是,我的问题是针对z/OS(大型机)中Liberty配置文件的支持

mainframe batch-file zos websphere-liberty jsr352

2
推荐指数
1
解决办法
256
查看次数

Java EE Batch (JSR 352) 会成为 quarkus 的一部分吗?

Batch API 是一个很酷的框架。JBoss 实现“jBeret”添加了更多一些很酷的东西,比如 REST API 和 UI。

Batch API 会在某个时候成为 Quarkus 的一部分吗?

jsr352 quarkus

2
推荐指数
1
解决办法
1007
查看次数