问题标签 [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.
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 列中
spring - 春季批处理不处理所有记录
我正在使用 Spring Batch 从使用 RepositoryItemReader 的 postgresql DB 读取记录,然后将其写入主题。我看到大约有 100 万条记录需要处理,但它没有处理所有记录。我已将阅读器的 pageSize 设置为 10,000 并且与提交间隔(块大小)相同
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”:没有匹配的编辑器或转换策略成立
spring-boot - Spring Batch Multiple JobExecutionListener - 不工作
我有一个 Spring Boot 批处理应用程序。我有两个工作和两个不同的 JobExecutionListener。但始终只有一个 JobExecutionListener 从两个作业中调用。
工作一
工作二
工作一听众
工作二听众
这两个作业都在执行,没有任何问题。但总是调用一个听众的工作。作业二监听器不工作。我尝试将@Qualifier 添加到@@Autowired 注释中,但这没有任何意义。
任何帮助表示赞赏。
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 表示的编辑器。
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.
与以前的版本相比有何变化?
spring - 如何使用 CompositeItemProcessor 在处理器中获取 stepExecutionContext?
在 XML 文件中,我使用CompositeItemProcessor配置了两个处理器
在“ oldProcessor ”bean java 文件中,我添加了下面的代码来获取StepExecution对象。
但上面的代码没有执行。只有从“ oldProcessor ”bean调用的process()方法。
当我尝试不配置 CompositeItemProcessor时,这个“ setStepExecution() ”方法和process()方法正在执行 oldProcessor bean。例如。
请告诉我,如何使用 CompositeItemProcessor 在处理器中获取 stepExecutionContext
spring-batch - 为什么我的 Spring Batch 作业在完成后没有退出
我的批处理作业配置如下
其中步骤 0、1 和 3 是 tasklet。我的工作正在完成消息Job: [FlowJob: [name=MyJob]] completed with the following parameters
。然而,它并没有退出——它挂在那里。当我在 IntelliJ 上本地运行它时,我必须手动退出该工作。
我没有实现任何异步。每个 taskletFINISHED
在完成时也会显式地返回一个状态。
spring-batch - 在 Spring Batch 作业中使用 Java ProcessBuilder - Tasklet
我正在尝试使用 Java ProcessBuilder 执行带有参数的终端命令。此代码是在作为作业的一部分执行的 Java Spring Batch Tasklet 中编写的。
尽管使用下面的代码正确初始化了它,但当进程构建器尝试读取我的命令参数时,我收到了一个空指针异常。这很奇怪,似乎我缺少一些基本的东西。
使用 Process Builder 的代码
这是显示错误的地方:
上面的代码片段来自 ProcessBuilder 类。有谁知道出了什么问题?
spring - FlatFileItemWriterBuilder-headerCallback() 获取写入的行数
是否有可能获得写入的总行数FlatFileItemWriter.headerCallback()
?
我是一个 spring-batch nubee,我研究了将行数放入平面文件和Spring Batch - Counting Processed Rows的标题中。但是,我似乎无法使用那里给出的建议来实现逻辑。有意义的是,作者计数仅在文件处理后才可用。但是,我试图在文件正式写入之前获取行数。
我试图寻找一个像钩子一样的钩子@AfterStep
并抓住总行,但我一直在绕圈子。
请注意,我在(上)中使用MyFileHeaderWriter.java
类(下headerCallback(new MyFileHeaderWriter(file.getFilename()))
)。我正在尝试初始化qtyRecordsCreated
下面的值。
如何获取标题行中的行数?可以FlatFileFooterCallback
用来获取行数,然后用文件中的行数更新标题吗?