问题标签 [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 回答
126 浏览

batch-processing - JSR352 根据 Decider 的返回参数决定下一步

我想实现一个判定器,它返回需要执行的下一步的 ID。(如果您想知道我为什么要这样做,这个问题与我的另一个问题有关:JEE Batch Job Specification with many optional Steps

有没有办法做到这一点?我将 JSR352 与 Websphere Liberty 一起使用,以防万一。

更新

我的意图是避免以下情况:

0 投票
1 回答
97 浏览

jsr352 - 在运行期间停止 JSR 批处理应用程序而不抛出异常

我们有一个 jsr 352 java 批处理应用程序,如果满足条件但不抛出异常,我们希望提前停止执行。我们工作的基本布局如下:

在我们的 step 监听器中,在 beforeStep() 方法中,如果满足特定条件,我们不想继续批处理作业的其余部分,我们只想优雅地停止。到目前为止,唯一会结束批处理作业的事情将是针对错误场景引发的异常或作业的成功完成。

如果在步骤侦听器中满足该条件,我们将如何完成跳过其余步骤,因为它是唯一的步骤?此外,抛出异常是在错误情况下结束批处理过程的推荐方法,还是有更好/更推荐的方法?

0 投票
2 回答
121 浏览

jakarta-ee - Java Batch 作业:如何等待用户决定?

在我的 Java 批处理作业(JSR-352,JBeret)中,我已经达到了我(可选)想要等待用户决定的地步。根据我的研究,JSR-352 规范没有提供“等待”的概念。所以问题是,还有哪些其他选择?

我目前的考虑:

  1. 我不希望拆分工作,因为这需要保持部件之间的连接以满足监控需求。
  2. 仅出于此目的将 JMS 引入项目似乎有些过头了。
  3. 通过 JPA 或 JDBC 轮询数据库似乎也不是一个好的解决方案。
  4. 作业启动时具体信息尚不可用,因此不能作为作业参数传递。
0 投票
0 回答
47 浏览

java - 调度程序不调用 Spring Boot Batch Job

这是主课。现在,我的问题是:

调度程序工作并且每分钟重复一次,但作业仅在应用程序启动时执行(读取器、处理器和写入器仅在启动时执行一次),并且当调度程序在主类中触发时,它无法调用批处理作业。

这是我的 Java 批处理作业代码

0 投票
1 回答
156 浏览

java-ee-7 - 如何在 JSR-352 Java Batch 应用程序中使用 JSL 中的动态值

在JSR-352 Java Batch 应用程序的 JSL(作业规范语言)文件中是否有使用动态值的语法?

我的具体情况是能够动态更改元素中的item-count属性值chunk(无需更改代码,无需重新构建,无需重新部署......)。

0 投票
1 回答
46 浏览

jakarta-ee - 通过 JobOperator 停止执行时的作业级回调

我正在使用 aJobListener来编写批处理执行日志文件。在我的第一次尝试中,我的代码依赖于afterJob()在每种情况下都被调用,但我发现,当执行通过JobOperator.stop(jobExecutionId). 我也明白可以恢复停止的工作。

批处理 API 是否为要通知停止事件的作业提供挂钩?

javax.batch.api.listener.JobListener.afterJob()

afterJob 方法在作业执行结束后接收控制权。

javax.batch.operations.JobOperator.stop(jobExecutionId)

该方法通知作业执行停止然后返回。

0 投票
1 回答
13 浏览

jsr352 - 如何防止 JBeret 中两个 Job 中使用的 Step 并行执行?

我在 Wildfly 上使用 JBeret,假设我有由 StepA、StepB、StepC 组成的 Job1。假设我有由 StepB 组成的 Job2。

现在,当两个作业同时运行时,我想阻止 StepB 并行执行。这意味着如果 Job2 运行 StepB 而 Job1 想要启动 StepB,则 Job1 应该等待或失败。

我怎样才能做到这一点?

谢谢你。