问题标签 [spring-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 投票
4 回答
18574 浏览

spring - 将 Spring Batch Admin 集成到现有应用程序中

我有一个使用 Spring Batch 和 Spring MVC 的应用程序。我可以将 Spring Batch Admin 部署为单独的战争,并将其用于我的应用程序使用的同一个数据库,尽管我想将它集成到我自己的应用程序中,也可能修改一些视图。

有没有一种简单的方法可以做到这一点,还是我必须分叉并从那里开始?

0 投票
2 回答
6156 浏览

java - JobParameter & ItemReader

我正在尝试访问 itemReader 中的 JobParameters,我遵循了 Spring 用户指南中的“作业和步骤属性的后期绑定”,但无法使其工作。

这是我的配置: Spring-batch 2.1.8 Spring-core 3.0.5

我的测试课:

但我总是得到这个错误:

有任何想法吗 ?

谢谢

0 投票
1 回答
3204 浏览

multithreading - 在 Spring Batch 的多线程步骤中写入 StepExecutionContext

我正在使用 Spring Batch,并且我创建了一个使用SimpleAsyncTaskExecutor. 在这一步中,我正在检索StepExecutionContextwith

在tasklet的处理方法中,我尝试更新上下文:

这导致ConcurrentModificationExceptions 上stepExecution。如何在这个多线程环境中避免这些并更新我的上下文?

0 投票
1 回答
4260 浏览

java - java并发Future任务在任何异常的情况下返回null并且不传播它

我是 java.util.concurrent 包的新手,并编写了一个从 DB 中获取一些行的简单方法。我确保我的数据库调用会抛出异常来处理它。但我没有看到异常传回给我。相反,对我的方法的调用返回 null。

在这种情况下有人可以帮助我吗?这是我的示例方法调用

我用谷歌搜索并找到了一些页面。但是看不到任何具体的解决方案。请高手帮忙....

taskExecutor 是 org.springframework.core.task.TaskExecutor 的对象

0 投票
1 回答
1866 浏览

java - 优雅关闭spring批处理并恢复批处理以防失败

我们正在使用 Spring Batch 进行一些后端操作。我们需要知道1)如何优雅地关闭正在运行的spring批处理?2)如何确保特定的弹簧批处理过程崩溃并在其他机器上恢复/启动它

0 投票
2 回答
13036 浏览

spring-batch - 项目写入期间意外的 rollbackCount 和 shouldSkip() 调用

Spring 文档(第 46 页,第 5.1.7 节)说:

默认情况下,无论是重试还是跳过,ItemWriter 抛出的任何异常都会导致 Step 控制的事务回滚。如果如上所述配置了跳过,则从 ItemReader 抛出的异常将不会导致回滚。

我的提交间隔设置为 10。所以我对上述段落的理解是,如果他们在读取 10 块中的第 7 条记录时出错,则该项目将被跳过,并且 itemReader 将提前发送正确的 9 条记录。

但是,如果在写入过程中第 7 条记录出错 - 这 10 条记录都不会被写入,并且会发生回滚。

但是,当我包含在我的 skipPolicy 中引发的错误时,itemWriter 正在将剩余的 9 条记录写入数据库,从而跳过错误的一条。这与上面提到的矛盾。

任何人都可以解释“在项目写作期间跳过”的概念。

此外,即使抛出单个错误,我也会得到以下信息:

在我的 shouldSkip(Object, Throwable) 方法中,SkipCount 两次为 -1,然后为 0,再次为 -1。- 我没有得到这种行为。

回滚计数也是 2 - 这是什么意思?为什么是 2 ?


@michael 您是否可以使用某些场景来解释行为!

就像“我正在从文件中读取 20 条记录并在经过一些处理后写入数据库。我为某些异常设置了跳过策略。如果异常发生在读取、处理、写入期间会发生什么——块将如何已提交,默认重试如何工作,计数将如何更新等等......”

这对我来说真的是一个很大的帮助,因为我仍然对这种行为感到困惑..

0 投票
3 回答
6100 浏览

java - 集群环境中的 Java Batch 作业

我们有一个包含 2 个 JBOSS 节点的集群。我们有一个批处理作业,它将所有用户详细信息从活动目录加载到数据库。该作业每天运行。它之前在非集群环境中运行,因此我们将其设计为单例。现在我们有一个集群环境,我不知道实现相同结果的最佳方法是什么。我希望批处理作业每天只运行一次。我们使用 spring 和 hibernate,我查看了 Spring 批处理。对于我的问题,我无法得到任何简明的答案。

如果您在集群环境中实施了批处理,有人可以告诉我吗?在这种情况下,最好的解决方案是什么?

0 投票
1 回答
1830 浏览

spring-batch - 在春季批处理写入期间确定块中失败项目的方法

有什么方法可以记录在写入 10 个项目大小的块期间失败的确切项目?

有没有办法在 ItemWriteListener 的 onWriteError 方法中捕获它?是否可以通过扩展 ItemWriter 接口来知道这一点?

谢谢和问候,尼克

0 投票
1 回答
1798 浏览

sql - Spring Batch Transaction 在提交间隔之外提交

我实现了一个带有读取器、处理器、写入器的 spring 批处理框架。批处理框架启动一个事务,提交间隔是每 50 条记录说的。

现在在我的阅读器或处理器中,如果我不想等待某些更新或插入语句等到达到提交间隔,并且想要正确提交,有可能吗?

它可以重新构建,例如如何在春季批处理事务中达到提交间隔之前仅提交特定记录。

我正在使用ibatis,oracle11g。我试图从我的 ibatis SQL 模板提交事务,但看不到提交发生。

0 投票
1 回答
1529 浏览

spring-batch - Spring批处理2.1和JmsReader

我有一个可以从命令行运行的 spring 批处理应用程序。批处理作业的流程是当它开始时,它从队列中读取消息并转换然后写入数据库。现在为此,我使用 Spring Batch 中的 JmsItemReader 和内部 read() 方法,我有我的逻辑。现在的问题是,当这个过程开始时,队列中可能没有消息存在,在这种情况下,我想停止处理整个批次。

这如何在春季批次中实现?基本上,当您使用 JmsItemReader 时会发生什么,它会不断地 ping jms 代理并读取消息,然后休眠一段时间。现在,如果没有要处理的消息,那么我们为什么要保持批处理进程运行并让它消耗 CPU。我希望它按照计划在第二天再次运行。

谢谢