问题标签 [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 投票
0 回答
354 浏览

spring - 从spring boot运行spring batch api时面临问题-spring batch无法更新BATCH_JOB_EXECUTION_CONTEXT中的数据

从spring boot运行spring batch api时面临问题-spring batch无法更新BATCH_JOB_EXECUTION_CONTEXT中的数据在更新JobExecution之前截断长消息:JobExecution:id = 386,version = 1,startTime = Thu Oct 03 00:00:00 EDT 2019, endTime=2019 年 10 月 3 日星期四 03:14:07 EDT,lastUpdated=2019 年 10 月 3 日星期四 03:14:07 EDT,状态=FAILED,exitStatus=exitCode=FAILED;exitDescription=org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; SQL [UPDATE BATCH_JOB_EXECUTION_CONTEXT SET SHORT_CONTEXT = ?, SERIALIZED_CONTEXT = ? WHERE JOB_EXECUTION_ID = ?]; SQL状态[72000];错误代码 [1461];ORA-01461: 只能绑定 LONG 值以插入 LONG 列;嵌套异常是 java.sql.SQLException: ORA-01461: can bind a LONG value only for insert into a LONG column

原因:java.sql.SQLException: ORA-01461: 只能绑定 LONG 值以插入到 LONG 列中

0 投票
1 回答
1174 浏览

spring - 春季批处理不处理所有记录

我正在使用 Spring Batch 从使用 RepositoryItemReader 的 postgresql DB 读取记录,然后将其写入主题。我看到大约有 100 万条记录需要处理,但它没有处理所有记录。我已将阅读器的 pageSize 设置为 10,000 并且与提交间隔(块大小)相同

0 投票
1 回答
69 浏览

spring-batch - 基于 Spring Batch 注释的作业作为一个步骤添加到基于 XML 的作业中

我们有一个基于 XML 的 Spring 批处理项目我们需要创建一个新作业,我们需要将该作业作为嵌套作业添加到以前基于 XML 的作业中是否可以基于创建新的作业注释并向现有 XML 添加一个步骤基础工作?

我创建了一个 Tasklet Step 并尝试将基于 XML 的 Job 作为 Step 添加并得到。

无法将类型“org.springframework.batch.core.step.tasklet.TaskletStep”的值转换为属性“tasklet”所需的类型“org.springframework.batch.core.step.tasklet.Tasklet”:没有匹配的编辑器或转换策略成立

0 投票
0 回答
1320 浏览

spring-boot - Spring Batch Multiple JobExecutionListener - 不工作

我有一个 Spring Boot 批处理应用程序。我有两个工作和两个不同的 JobExecutionListener。但始终只有一个 JobExecutionListener 从两个作业中调用。

工作一

工作二

工作一听众

工作二听众

这两个作业都在执行,没有任何问题。但总是调用一个听众的工作。作业二监听器不工作。我尝试将@Qualifier 添加到@@Autowired 注释中,但这没有任何意义。

任何帮助表示赞赏。

0 投票
1 回答
368 浏览

spring-batch - 我应该如何使用 Spring Batch 和 Spring Cloud Data Flow 对可配置的批处理网络进行切片和编排?

我们希望将一些 Kettle 导入作业的调度和顺序控制从专有实现迁移到 Spring Batch 风格的良好实践实现。

我打算使用 Spring Cloud Data Flow (SCDF) 服务器来实现和运行现有外部导入作业的可配置序列。

SCDF 控制台任务编辑器UI似乎很有希望组装一个流程。因此,一个 Task 包装了一个 Spring Batch,它仅在一个步骤中执行一个 Tasklet,启动并轮询 Carte REST API。到目前为止,这有意义吗?

你会建议一个更好的实现吗?

约束和要求:

  • 使用 Carte REST API 触发和轮询外部 Kettle 作业。实际上,这是一个单独的 Kettle 作业实现,为每个要导入的实体调用单独的参数。
  • 有几个实体的导入作业的可配置的有向图,其中一些依赖于前一个实体类型的正确导入。(例如部门,然后是员工,然后是角色分配......)
  • 随着即将到来的实施,我们希望得到
    • 监视和控制(启动、中止、暂停、恢复)
    • 可重启性
    • 在生产中轻松重新配置序列(可能通过 GUI 或外部编辑器)
    • 可能是一些报告和统计数据。

据我目前的理解,这可以通过使用 Spring Cloud Data Flow (SCDF) 服务器和一些任务/批处理实现/组合来实现。

如果我错了,请纠正我,但是具有硬连线流程的单个 Spring Batch 作业似乎不太适合我。或者有没有一种简单的方法来编辑和重新部署 Spring Batch 并改变生产流程?我找不到任何东西,甚至没有一个易于使用的用于批处理 XML 表示的编辑器。

0 投票
1 回答
2889 浏览

java - java.lang.IllegalStateException: 更新 Spring Batch 到 4.1.1 后必须提供 ItemWriter

以前,我们使用Spring Batch 3.0.6并尝试将其更新为4.1.1。我的工作只有一个ItemReader和一个ItemProcessor- 没有ItermWriter提供。更新前工作正常。

现在,我得到:

java.lang.IllegalStateException: ItemWriter must be provided.

与以前的版本相比有何变化?

0 投票
1 回答
449 浏览

spring - 如何使用 CompositeItemProcessor 在处理器中获取 stepExecutionContext?

在 XML 文件中,我使用CompositeItemProcessor配置了两个处理器

在“ oldProcessor ”bean java 文件中,我添加了下面的代码来获取StepExecution对象。

但上面的代码没有执行。只有从“ oldProcessor ”bean调用的process()方法。

当我尝试不配置 CompositeItemProcessor时,这个“ setStepExecution() ”方法和process()方法正在执行 oldProcessor bean。例如。

请告诉我,如何使用 CompositeItemProcessor 在处理器中获取 stepExecutionContext

0 投票
1 回答
1486 浏览

spring-batch - 为什么我的 Spring Batch 作业在完成后没有退出

我的批处理作业配置如下

其中步骤 0、1 和 3 是 tasklet。我的工作正在完成消息Job: [FlowJob: [name=MyJob]] completed with the following parameters。然而,它并没有退出——它挂在那里。当我在 IntelliJ 上本地运行它时,我必须手动退出该工作。

我没有实现任何异步。每个 taskletFINISHED在完成时也会显式地返回一个状态。

0 投票
0 回答
147 浏览

spring-batch - 在 Spring Batch 作业中使用 Java ProcessBuilder - Tasklet

我正在尝试使用 Java ProcessBuilder 执行带有参数的终端命令。此代码是在作为作业的一部分执行的 Java Spring Batch Tasklet 中编写的。

尽管使用下面的代码正确初始化了它,但当进程构建器尝试读取我的命令参数时,我收到了一个空指针异常。这很奇怪,似乎我缺少一些基本的东西。

使用 Process Builder 的代码

这是显示错误的地方:

上面的代码片段来自 ProcessBuilder 类。有谁知道出了什么问题?

0 投票
1 回答
790 浏览

spring - FlatFileItemWriterBuilder-headerCallback() 获取写入的行数

是否有可能获得写入的总行数FlatFileItemWriter.headerCallback()

我是一个 spring-batch nubee,我研究了将行数放入平面文件Spring Batch - Counting Processed Rows的标题中。但是,我似乎无法使用那里给出的建议来实现逻辑。有意义的是,作者计数仅在文件处理后才可用。但是,我试图在文件正式写入之前获取行数。

我试图寻找一个像钩子一样的钩子@AfterStep并抓住总行,但我一直在绕圈子。

请注意,我在(上)中使用MyFileHeaderWriter.java类(下headerCallback(new MyFileHeaderWriter(file.getFilename())))。我正在尝试初始化qtyRecordsCreated下面的值。

如何获取标题行中的行数?可以FlatFileFooterCallback用来获取行数,然后用文件中的行数更新标题吗?