问题标签 [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.
spring-batch - 春季批处理远程分块不排队消息而是在本地运行它?
下面是我对 Spring Batch 远程分块的配置。我的步骤在本地而不是远程运行。我在 rabbitmq 中看不到消息。
将配置更改为此,现在它一次排队单个消息并且不处理多个(应该处理的消息数等于侦听器并发)。
我一次只能在队列中看到 1 条消息。我应该发送消息 = ${import.exchanges.commit.interval} 并且所有消息都应该由并发侦听器接收并并行处理。
spring - 从作业中启动作业,以便父作业不应等待子作业在春季批处理中完成?
我想从我的主要批处理作业中启动不同的作业。目前我正在使用工作步骤,例如
它启动子作业 importPricesAndQuoteListJob 并等待它完成。我不想等待这一步完成。相反,我只想启动这项工作并继续执行其他步骤。
可能是春季批量集成 JobLaunchingMessageHandler 可以提供帮助,但我不确定如何从父作业为子作业构建作业启动请求?
是否有任何适配器可以将上述步骤转换为作业启动请求?有什么例子吗?
spring - 春季批次不停止,内部工作继续运行
我有嵌套作业,主要作业调用许多子作业,它们再次调用其他子作业。我正在使用弹簧批处理远程分区来分区步骤执行。
如果我使用弹簧批处理管理停止主要工作,它不会停止工作。所有作业继续运行。
它应该停止所有内部作业,并且在重新启动时应该从它们停止的相同位置启动内部作业。
那是因为嵌套作业吗?嵌套级别有限制吗?还是因为远程分区?
spring - 当资源无法调用其他步骤并重试引发异常的同一步骤时,如何处理 FlatFileItemReader 异常?
我正在使用弹簧批处理远程分区。我的第一步为所有其他步骤准备输入文件。其他步骤处理输入文件。
要在所有 4 个服务器上创建输入文件,我的第一步应该在所有服务器上运行。所以我在所有服务器上设置了消费者并发 1,网格大小 4 = 服务器数量。
但是某些服务器上的消费者会多次使用步骤执行请求消息,因此在其他服务器上,第一步不会运行,因此输入文件没有准备好,这会导致尝试处理这些文件的其他步骤失败。
如果资源(输入文件)不可用,如果任何步骤引发异常,我想运行第一步,然后重试引发异常的同一步骤。
如果资源不可用,如何在严格模式下处理 FlatFileItemReader 引发的异常并调用第一步准备输入文件并重试引发异常的同一步骤?
更多细节在这里
在文档中提到了两种类型的异常
出于这个原因,Spring Batch 提供了用于处理解析异常的异常层次结构:FlatFileParseException 和 FlatFileFormatException。当尝试读取文件时遇到任何错误时,FlatFileItemReader 会抛出 FlatFileParseException。FlatFileFormatException 由 LineTokenizer 接口的实现引发,并指示在标记化时遇到更具体的错误。
这是否意味着FlatFileParseException
在读取现有文件时出现错误或文件根本不存在时抛出?
或在源代码中,
FlatFileItemReader<T> extends AbstractItemCountingItemStreamItemReader
哪里AbstractItemCountingItemStreamItemReader:read
扔UnexpectedInputException
?
我不确定如何使用它们?
spring - 如何使用 spring 集成 sftp 出站网关从远程服务器下载文件?
我有弹簧批处理设置(远程分区),它从文件中读取项目并处理它们。
如果输入文件不存在,我想从远程服务器复制它们。因此,我添加了一个步骤侦听器,因为我正在尝试使用 spring 集成 sftp 出站网关从远程服务器下载文件。
我指的是这个测试用例
下面是我的配置,
我做错了什么吗,因为似乎没有任何效果。
另外, int-sftp:outbound-gateway 可以有 scope="step" 吗?如果我尝试添加,它会在 STS 中给出错误。
日志
这是启用了调试级别的日志
完整的日志在这里
更新:
下面只是一个简单的测试,而不是整个用例,
测试作业
sftp 出站网关配置
测试任务
日志:
spring - 在 springbatch admin ui 上单击作业链接时出现 404 错误
我是springbatch的新手。我正在尝试创建一个批处理应用程序并与批处理管理 ui 集成。我使用的版本是 spring-batch-2.2.7 和 spring-batch-admin-1.3.0.M1。我可以使用 junit 运行我的工作,还可以在管理 ui 上查看我的所有工作。当我单击作业时,我收到 404 错误。
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 的东西?
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 和各种论坛,但找不到解决我的问题的方法。有人可以帮忙吗?
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 也在本地工作。
我将非常感谢任何提示!
java - Spring-Batch:从阅读中跳过记录
试图从平面文件中读取数据,我需要跳过阅读器内的无效记录。
如何做到这一点?
问题:当我从 T doRead() 方法为无效记录返回 null 时,它会停止从那里读取文件。
任何帮助在这里表示赞赏。