问题标签 [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.
batch-processing - JSR352 根据 Decider 的返回参数决定下一步
我想实现一个判定器,它返回需要执行的下一步的 ID。(如果您想知道我为什么要这样做,这个问题与我的另一个问题有关:JEE Batch Job Specification with many optional Steps)
有没有办法做到这一点?我将 JSR352 与 Websphere Liberty 一起使用,以防万一。
更新
我的意图是避免以下情况:
jsr352 - 在运行期间停止 JSR 批处理应用程序而不抛出异常
我们有一个 jsr 352 java 批处理应用程序,如果满足条件但不抛出异常,我们希望提前停止执行。我们工作的基本布局如下:
在我们的 step 监听器中,在 beforeStep() 方法中,如果满足特定条件,我们不想继续批处理作业的其余部分,我们只想优雅地停止。到目前为止,唯一会结束批处理作业的事情将是针对错误场景引发的异常或作业的成功完成。
如果在步骤侦听器中满足该条件,我们将如何完成跳过其余步骤,因为它是唯一的步骤?此外,抛出异常是在错误情况下结束批处理过程的推荐方法,还是有更好/更推荐的方法?
jakarta-ee - Java Batch 作业:如何等待用户决定?
在我的 Java 批处理作业(JSR-352,JBeret)中,我已经达到了我(可选)想要等待用户决定的地步。根据我的研究,JSR-352 规范没有提供“等待”的概念。所以问题是,还有哪些其他选择?
我目前的考虑:
- 我不希望拆分工作,因为这需要保持部件之间的连接以满足监控需求。
- 仅出于此目的将 JMS 引入项目似乎有些过头了。
- 通过 JPA 或 JDBC 轮询数据库似乎也不是一个好的解决方案。
- 作业启动时具体信息尚不可用,因此不能作为作业参数传递。
java - 调度程序不调用 Spring Boot Batch Job
这是主课。现在,我的问题是:
调度程序工作并且每分钟重复一次,但作业仅在应用程序启动时执行(读取器、处理器和写入器仅在启动时执行一次),并且当调度程序在主类中触发时,它无法调用批处理作业。
这是我的 Java 批处理作业代码
jakarta-ee - 通过 JobOperator 停止执行时的作业级回调
我正在使用 aJobListener
来编写批处理执行日志文件。在我的第一次尝试中,我的代码依赖于afterJob()
在每种情况下都被调用,但我发现,当执行通过JobOperator.stop(jobExecutionId)
. 我也明白可以恢复停止的工作。
批处理 API 是否为要通知停止事件的作业提供挂钩?
javax.batch.api.listener.JobListener.afterJob()
:
afterJob 方法在作业执行结束后接收控制权。
javax.batch.operations.JobOperator.stop(jobExecutionId)
:
该方法通知作业执行停止然后返回。
jsr352 - 如何防止 JBeret 中两个 Job 中使用的 Step 并行执行?
我在 Wildfly 上使用 JBeret,假设我有由 StepA、StepB、StepC 组成的 Job1。假设我有由 StepB 组成的 Job2。
现在,当两个作业同时运行时,我想阻止 StepB 并行执行。这意味着如果 Job2 运行 StepB 而 Job1 想要启动 StepB,则 Job1 应该等待或失败。
我怎样才能做到这一点?
谢谢你。