问题标签 [spring-batch-job-monitoring]

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

spring-boot - 我们可以在春季批处理的两步中执行相同的tasklet但使用不同的对象吗

我创建了 fileAllocationTasklet,其目的是将文件从一个路径移动到另一个路径。该文件将输入作为 fromPath 和 To Path。所以我试图在两个步骤中使用这个相同的tasklet来制作新对象。我知道 tasklet 只运行一次。

但是 tasklet 只在第 1 步中第一次运行,但在第 3 步中没有运行。我这样做是为了避免代码冗余。如果有其他最好的方法,那将是可观的。

实际上,我使用了@StepScope 的答案,这意味着每个步骤的对象都是唯一的,但不是单例的。每次执行步骤都会形成新的 tasklet 对象,该对象之前由于 @Bean 而没有形成。解释也可以在https://stackoverflow.com/questions/38780796/how-does-spring-batch-step-scope-work?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa

0 投票
2 回答
1478 浏览

spring - 输入文件到达时如何启动批处理作业?

我们有 Spring4 和 Spring Batch 3,我们的应用程序使用 CSV 文件作为输入文件。目前我们从命令行手动启动作业,使用带有参数的 CommandLineJobRunner,包括要处理的文件的名称。

只要输入文件到达受监视的目录,我就想启动一项异步处理的工作。我们怎么能做到这一点?

0 投票
1 回答
1989 浏览

spring - 春季批处理:如果未在特定时间完成,则重试作业

我正在开发一个使用过的 Spring 批处理应用RetryTemplate程序SimpleRetryPolicy

在此应用程序中,ItemProcessor通常需要 30-35 分钟才能完成特定任务。但有时,完成同样的任务需要不到 2 小时。

ItemProcessor如果分配的任务在给定的时间内没有完成,有没有办法重试我的?

我正在寻找一些 Java/Spring 内置功能,而不是编写自己的超时逻辑。

0 投票
0 回答
47 浏览

java - 批处理作业重新调度使用 Java , CronExpression

我有一份工作在每天的特定时间运行。我必须使用一些逻辑更新作业的 CronExpression,问题是一旦 CronExpression 更新,我必须重新启动服务器以使用新时间运行该作业。如何在不重新启动服务器的情况下重新启动作业。我已经搜索了其他问题,但找不到我的解决方案。

我为另一项工作更新 cronExpression 的工作是:

如何重新启动批处理作业..

0 投票
0 回答
414 浏览

spring-batch - Spring Batch 作业重启和状态跟踪

我使用 H2 数据库作为作业存储库。应用程序重新启动后,我需要继续或重新启动以前未完成的 Spring Batch Jobs。

现在我使用以下代码来实现这一点:

它工作正常但有一个副作用 - 它在BATCH_JOB_EXECUTION 表中生成新记录并为其分配新executionId值。但我使用executionIdvalue 来跟踪工作状态:

因此,我使用以下逻辑 - 我安排作业并返回executionId. 后来,我使用它executionId来跟踪我的工作状态。使用上面提到的重新启动逻辑 - 我返回executionId, 然后重新启动应用程序,在应用程序启动后,我的逻辑重新启动未完成的作业并为它们分配新的executionId. 因此,在这种情况下,我无法跟踪新的重新启动作业的状态,因为我只有旧的executionId

在这种情况下如何正确检查作业状态或如何正确重新启动作业以便能够跟踪旧作业的状态executionId

0 投票
0 回答
108 浏览

java - 如何在 springbatch 项目阅读器中读取多于文本文件

我必须将项目阅读器中的文本文件读入我的项目处理器。但是现在我必须在我的项目处理器中读取多个文件。

而且我对文本文件阅读器还有一个疑问:如何在不使用文件概念的情况下阅读文本文件?

0 投票
0 回答
160 浏览

spring-batch - onWriteError 不适用于 MongoItemWriter

异常没有达到onWriteError我的方法ItemWriteListener

构建.gradle

有人可以帮帮我吗?

0 投票
0 回答
290 浏览

spring-boot - 如何优雅地关闭 Spring Batch 从站

我们正在使用 spring batch 远程分区来实现批处理作业。在批处理窗口启动期间,我们启动一组预定义的从属 JVM。

对于每个单独的工作,我们启动一个主控。主创建分区上下文,从属正在挑选和处理它们。从站对于批处理窗口中的所有作业都是通用的。

在批处理窗口结束时,我们希望优雅地关闭从站。除了杀死从属JVM之外,还有其他方法吗?

0 投票
1 回答
1602 浏览

java - 使用 JpaPagingItemReader 时无法获取基于不同 pageSize 和 ChunkSize 的所有记录

我需要限定 14 条记录。chunkSize 是 10 页大小是 2。它的作用域只有 10 条记录。

我用不同的方式检查过。chunkSize = 5 pageSize = 10 范围仍然只有 10 条记录,而不是全部 14 条。

只有当 chunksize =11 和 pageSize =10 或 chunkSize = 10 和 pageSize = 20 时它才能正常工作

}

处理器代码,

我正在使用发生读取的相同字段更新处理器中的其他对象。所以我正在阅读器类中阅读“范围”实体。在处理器类中创建 execitionScope 对象并根据范围更新值并在 DB 中持久化 execitionScope。

两个实体都指向不同的表。ScopeParam点击fin_t 表并ExecutionScope点击exec_scope表。

请给我建议。

0 投票
1 回答
784 浏览

java - 如果我必须处理 API 服务而不是 CSV 作业,是否需要 Spring Batch?

我正在编写一个应用程序,其主要目标是从服务提供商(XXX)提取数据,通过 HTTP REST 将其转换并推送到另一个服务提供商(YYY)。

我可以用一个简单的 for 循环来做到这一点,并将最后检索到的项目创建日期存储在一个单独的表中。因此,我可以在需要时继续从上次转换的项目中提取项目,并且我将维护单独的表来保存失败的记录,并通过 CRON 定期重试那些失败的记录。

我还需要使用 SPRING Batch。据我所知,它有助于将代码与 Reader、Processor 和 Writer 模块化。

我错过了什么吗?我可以使用 Spring Batch 并从 A 点到 B 点通过 HTTP 服务同步数据吗?