问题标签 [spring-batch-tasklet]

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

java - Intellij Idea 中忽略了 Spring Batch Tasklet

弹簧布奇配置文件:

如果我已经启动它:

检查日志我们可以检测到一切都已完成。

Tasklets 没有被执行。因为这个,我真的很困惑。检查数据库我检测到作业状态是COMPLETEDbut exit_codeis NOOP

我也检测到,使用.allowStartIfComplete(true)forstep触发器tasklet执行。但这就像一个 hack,它只能在同一作业范围内单次用于该步骤(它不适用于同一作业中的双例执行步骤)。例如:

如果我在终端启动项目 - 它可以正常工作。

我的环境:

  • OpenJDK 运行环境 Zulu11.29+3-CA (build 11.0.2+7-LTS)
  • 摇篮 5.4.1
  • Idea社区(刚安装最新版本)
  • 操作系统 ubuntu 18.04
  • 从想法启动应用程序的命令是:

问题

我猜想法的问题,因为它在终端中有效。有什么方法可以分析和检测我的案例的原因并解决它,如何?

附言

我已经做了下一次不成功的尝试来修复它:

  • 重新安装的想法;
  • 从准备好的来源和春季开始重新创建项目;
  • 重新启动想法使缓存无效
  • -
0 投票
1 回答
1016 浏览

spring-batch - Spring批处理长时间运行的tasklet报错最后一个成功发送到服务器的数据包是

我长时间运行 tasklet 运行了 20 小时,任务完成后,由于 mysql 连接关闭,我在 Spring 批处理中遇到错误。

下面是我的工作配置

作业配置是

ttl 生成步骤耗时 20 小时,必须处理 330GB 数据。

完成此步骤后,我遇到了错误。请建议。

0 投票
0 回答
937 浏览

java - 步骤执行状态在 Spring Batch 中没有像 Finished

在 SpringBatch 中,作业没有按照定义的步骤完成,而是继续从 Writer 到 Reader,而 Debugging 发现的上下文计数增加为 1
,因为执行状态为“CONTINUABLE”而不是“FINISHED”。

第 1 步即将完成,但第 2 步遇到此问题..请帮助..

0 投票
0 回答
336 浏览

spring-batch - 批处理应用程序中的计划作业有时会引发错误

我有一个调度程序来安排作业在特定时间运行。根据给定的 cron 表达式,它包含大约 10 个要运行的作业。但有时某些作业会出现异常“CannotSerializeTransactionException”失败,而且这种情况发生得最频繁。

我们有一个 platformTransactionManager,它返回给动态创建的 jobRepository。

因此,我无法为 jobRepository 设置隔离级别。现在如何解决问题以解决错误。我试图调查这个问题,但我不明白是什么导致工作失败。

0 投票
1 回答
2594 浏览

java - Spring Batch ItemReader 在第一行获取 NullPointerException

当我尝试读取我的 csv 文件时,我遇到了 Spring batch 的这个问题。

我必须阅读具有如下结构的CSV

我有一个MultiResourceItemReader,它委托 String 类型的FlatFileItemReader,以便在之后执行的自定义项处理器中轻松将此行映射到我的自定义 DTO。

在我的 Tasklet 中,我像这样注入了 MultiResourceItemReader bean:

然后我这样称呼它(设置资源和上下文):

我也会附上我的 readerItems bean:

0 投票
0 回答
359 浏览

java - 在 Spring 批处理中将属性注入 FlatFileItemWriter

我需要生成一个名为:当前日期NEW_NAME_YYYY-MM-DD在哪里的文件。YYYY-MM-DD一切正常,除了当我的批处理尝试获取属性tmp.dir时,它什么也没找到并调用目录null。这是我正在使用的 Writer 类:

applicationContext.xml这是与属性文件的属性占位符一起放置的 bean 定义:

关于为什么不注入属性的任何想法???至于batch.properties在我的例子中调用的属性文件,它在 applicationcontext 中声明得很好

0 投票
1 回答
41 浏览

spring-batch - 弹簧批处理解决方案

1

在我们的应用程序中,我们有大约 100000 个客户,并且需要每月处理一些数据。每个客户的数据处理逻辑涉及对不同服务的大约 7 次休息调用。我们需要在 Spring Batch 中执行此操作以实现性能。

处理数据的步骤--l读取所有客户列表-获取数据web服务--l调用7个不同的微服务来获取余额、类型、费用、日期等..-l将结果写入S3存储桶

请建议设计春季批次的流程

0 投票
0 回答
352 浏览

spring-boot - 当我的 Spring Batch 阅读器返回 null 时,如何创建一个空文件

我有一个 Spring Batch 应用程序,其中有 Reader - Processor - Composite Writer

现在在我们的应用程序中有一个用例,当我的阅读器返回 null 时(即当它读取空文件时),我需要编写一个空文件,否则,我的阅读器应该调用处理器 - 编写器流。

任何帮助或建议我如何以最好的方式处理这个案例?

0 投票
2 回答
650 浏览

java - Tasklet#execute 什么时候应该返回 CONTINUABLE?

我读到

在您的 Tasklet 实现中完成处理后,您将返回一个 org.springframework.batch.repeat.RepeatStatus 对象。有两个选项:RepeatStatus.CONTINUABLE 和 RepeatStatus.FINISHED。乍一看,这两个值可能会令人困惑。如果您返回 RepeatStatus.CONTINUABLE,您并不是说该作业可以继续。您正在告诉 Spring Batch 再次运行 tasklet。比如说,你想在一个循环中执行一个特定的 tasklet,直到满足给定的条件,但你仍然想使用 Spring Batch 来跟踪 tasklet 的执行次数、事务等等。您的 tasklet 可以返回 RepeatStatus.CONTINUABLE 直到满足条件。如果您返回 RepeatStatus.FINISHED,

但我无法想象使用此功能的示例。你能给我解释一下吗?下一次 tasklet 何时被调用?

0 投票
0 回答
175 浏览

spring-batch - 作业实例已存在且已完成,参数 ={}。如果要再次运行此作业,请更改参数

运行弹簧批处理应用程序时出现以下错误

作业实例已存在且已完成,参数 ={}。如果要再次运行此作业,请更改参数。

我已经尝试过以下事情,并且有几次应用程序会启动,但大多数时候它都无法正常工作

每 5 秒执行一次进程的代码。试图将其更改为 60 秒,但同样的问题。

数据源