问题标签 [spring-batch-admin]

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 回答
1109 浏览

spring-batch - 春季批处理远程分块不排队消息而是在本地运行它?

下面是我对 Spring Batch 远程分块的配置。我的步骤在本地而不是远程运行。我在 rabbitmq 中看不到消息。

将配置更改为此,现在它一次排队单个消息并且不处理多个(应该处理的消息数等于侦听器并发)。

我一次只能在队列中看到 1 条消息。我应该发送消息 = ${import.exchanges.commit.interval} 并且所有消息都应该由并发侦听器接收并并行处理。

0 投票
1 回答
214 浏览

spring - 从作业中启动作业,以便父作业不应等待子作业在春季批处理中完成?

我想从我的主要批处理作业中启动不同的作业。目前我正在使用工作步骤,例如

它启动子作业 importPricesAndQuoteListJob 并等待它完成。我不想等待这一步完成。相反,我只想启动这项工作并继续执行其他步骤。

可能是春季批量集成 JobLaunchingMessageHandler 可以提供帮助,但我不确定如何从父作业为子作业构建作业启动请求?

是否有任何适配器可以将上述步骤转换为作业启动请求?有什么例子吗?

0 投票
1 回答
989 浏览

spring - 春季批次不停止,内部工作继续运行

我有嵌套作业,主要作业调用许多子作业,它们再次调用其他子作业。我正在使用弹簧批处理远程分区来分区步骤执行。

如果我使用弹簧批处理管理停止主要工作,它不会停止工作。所有作业继续运行。

它应该停止所有内部作业,并且在重新启动时应该从它们停止的相同位置启动内部作业。

那是因为嵌套作业吗?嵌套级别有限制吗?还是因为远程分区?

0 投票
1 回答
1710 浏览

spring - 当资源无法调用其他步骤并重试引发异常的同一步骤时,如何处理 FlatFileItemReader 异常?

我正在使用弹簧批处理远程分区。我的第一步为所有其他步骤准备输入文件。其他步骤处理输入文件。

要在所有 4 个服务器上创建输入文件,我的第一步应该在所有服务器上运行。所以我在所有服务器上设置了消费者并发 1,网格大小 4 = 服务器数量。

但是某些服务器上的消费者会多次使用步骤执行请求消息,因此在其他服务器上,第一步不会运行,因此输入文件没有准备好,这会导致尝试处理这些文件的其他步骤失败。

如果资源(输入文件)不可用,如果任何步骤引发异常,我想运行第一步,然后重试引发异常的同一步骤。

如果资源不可用,如何在严格模式下处理 FlatFileItemReader 引发的异常并调用第一步准备输入文件并重试引发异常的同一步骤?

更多细节在这里

文档中提到了两种类型的异常

出于这个原因,Spring Batch 提供了用于处理解析异常的异常层次结构:FlatFileParseException 和 FlatFileFormatException。当尝试读取文件时遇到任何错误时,FlatFileItemReader 会抛出 FlatFileParseException。FlatFileFormatException 由 LineTokenizer 接口的实现引发,并指示在标记化时遇到更具体的错误。

这是否意味着FlatFileParseException在读取现有文件时出现错误或文件根本不存在时抛出?

或在源代码中,

FlatFileItemReader<T> extends AbstractItemCountingItemStreamItemReader哪里AbstractItemCountingItemStreamItemReader:readUnexpectedInputException

我不确定如何使用它们?

0 投票
1 回答
6448 浏览

spring - 如何使用 spring 集成 sftp 出站网关从远程服务器下载文件?

我有弹簧批处理设置(远程分区),它从文件中读取项目并处理它们。

如果输入文件不存在,我想从远程服务器复制它们。因此,我添加了一个步骤侦听器,因为我正在尝试使用 spring 集成 sftp 出站网关从远程服务器下载文件。

我指的是这个测试用例

https://github.com/spring-projects/spring-integration/blob/master/spring-integration-sftp/src/test/java/org/springframework/integration/sftp/outbound/SftpOutboundTests.java

https://github.com/spring-projects/spring-integration/blob/master/spring-integration-sftp/src/test/java/org/springframework/integration/sftp/outbound/SftpServerOutboundTests-context.xml

下面是我的配置,

我做错了什么吗,因为似乎没有任何效果。

另外, int-sftp:outbound-gateway 可以有 scope="step" 吗?如果我尝试添加,它会在 STS 中给出错误。

日志

这是启用了调试级别的日志

完整的日志在这里

http://pastebin.com/4KDBGqCH

更新:

下面只是一个简单的测试,而不是整个用例,

测试作业

sftp 出站网关配置

测试任务

日志:

0 投票
1 回答
362 浏览

spring - 在 springbatch admin ui 上单击作业链接时出现 404 错误

我是springbatch的新手。我正在尝试创建一个批处理应用程序并与批处理管理 ui 集成。我使用的版本是 spring-batch-2.2.7 和 spring-batch-admin-1.3.0.M1。我可以使用 junit 运行我的工作,还可以在管理 ui 上查看我的所有工作。当我单击作业时,我收到 404 错误。

0 投票
2 回答
1924 浏览

spring - 即使并发为 10,Spring 批处理管理远程分区步骤最多运行 8 个线程?

我正在使用弹簧批处理远程分区进行批处理。我正在使用 Spring Batch admin 启动作业。

我的入站网关消费者并发步长为 10,但并行运行的最大分区数为 8。

我想稍后将消费者并发增加到 15。

下面是我的配置,

有2个问题,

i) 即使我将并发设置为 10,运行的最大线程数是 8。

ii)

有些较慢,因为其他进程在它们上面运行,有些则更快,所以我想确保公平分配步骤执行,即如果更快的服务器完成了它们的执行,队列中的其他剩余执行应该交给它们。它不应该以循环方式分发。

我知道在 rabbitmq 中有预取计数设置和 ack 模式可以很好地分发。对于spring集成,prefetch count默认为1,ack模式默认为AUTO。但是即使其他服务器长时间运行,仍然有一些服务器继续运行更多分区。理想情况下,任何服务器都不应闲置。

更新:

我现在观察到的另一件事是,对于使用 split 并行运行的某些步骤(不使用远程分区进行分布式)也最多并行运行 8 个。它看起来像线程池限制问题,但您可以看到 taskExecutor 的 pool-size 设置为 50。

spring-batch/spring-batch-admin 中是否有任何限制并发运行步骤数的内容?

第二次更新:

而且,如果有 8 个或更多线程在并行处理项中运行,则不会加载 spring batch admin。它只是挂起。如果我降低并发性,弹簧批处理管理负载。我什至通过在一台服务器上设置并发 4 和在另一台服务器上设置 8 来测试它,spring batch admin 没有加载它我使用运行 8 个线程的服务器的 URL,但它在运行 4 个线程的服务器上工作。

Spring 批处理管理器具有以下 jobLauncher 配置,

那里的池大小为6,与上述问题有什么关系?

或者在 tomcat 7 中是否有任何限制运行线程数为 8 的东西?

0 投票
1 回答
4582 浏览

java - 在单个 Weblogic 域中的同一集群中部署两个 Spring 批处理应用程序?

背景 -

我正在尝试将两个 Spring Batch 应用程序作为 .war 部署在单个 Weblogic 域中的同一集群中,并且它们每个都在 servlet.xml 中配置了 Spring Batch 管理控制台,如下所示-

它是一个 Maven 项目,并且 spring-batch-admin-manager 1.2.2 被作为依赖项引入。

问题 -
我正在努力让它们同时运行。目前我不能让它们两个一起运行,当我尝试启动另一个而其中一个已经运行时,我得到以下错误 -</p>

据我了解,问题出在 spring-batch-admin 上。由于两个应用程序都试图从它们的配置中初始化相同的 bean,我收到了这个错误,但我不知道如何防止这种情况发生。

我曾尝试通过网络搜索 stackoverflow 和各种论坛,但找不到解决我的问题的方法。有人可以帮忙吗?

0 投票
1 回答
275 浏览

java - 基本身份验证在 WebSphere 7 上不起作用

我想在我的 web 应用程序中将 Basic Auth 添加到 Spring Batch Admin Console。当我尝试在本地 Tomcat 上这样做时,一切正常。身份验证工作正常。此外,当我在客户端上部署应用程序时,WebSphere 7 Basic Auth 上的测试和集成环境正在运行。

但是我在客户的 Pre 和 Live 环境中遇到了问题。还有 WebSpheres 7,但 Basic Auth 不起作用。我可以登录 Batch Admin Console 并且应用程序不会询问我有关身份验证详细信息的信息。

我的 web.xml 配置文件:

这是我的配置问题还是客户端在 WS 上配置不正确。我不得不承认我没有任何访问 Pre 和 Live WS 的权限。为我们部署另一个组织。但我可以要求他们进行配置检查,但现在我不知道我应该问什么。

我有一个线索,因为在测试和集成环境中没有配置 https,但是在 Pre 和 Live SSL 上启用了。HTTPS 可以削减 Basic Auth。信息?当我启动配置了 HTTPS 的 Tomcat 时,Basic Auth 也在本地工作。

我将非常感谢任何提示!

0 投票
1 回答
1495 浏览

java - Spring-Batch:从阅读中跳过记录

试图从平面文件中读取数据,我需要跳过阅读器内的无效记录。

如何做到这一点?

问题:当我从 T doRead() 方法为无效记录返回 null 时,它会停止从那里读取文件。

任何帮助在这里表示赞赏。