spring - Spring Batch 失败更新表
问题描述
我正在使用 Spring Batch 根据从第三方 API 收到的输入来更新员工状态。任何人都可以帮助我如何更新 EMPLOYEE 表中的员工状态,如果步骤失败并出现一些异常并且整体工作状态为 FAILED 到我的表而不是 spring 批处理表?
解决方案
您可以分两步进行:
- step1(tasklet):进行其余调用并将结果保存在文件中(如有必要,在作业后删除文件)
- step2(面向块):读取员工项目并更新其在数据库中的状态
对于编写器,您可以使用JdbcBatchItemWriter
配置了 sql 语句,例如:update table employee set status = ? where id = ?
。
根据步骤失败的问题,如果在处理块的过程中发生任何异常,事务将被回滚并且不会向数据库提交任何更新。此处的参考文档中有关此的更多详细信息。
希望这可以帮助。
推荐阅读
- amazon-web-services - 如何将消息发送到不同 AWS 账户中的 SQS 队列?
- python - 如何累积 Pandas DataFrame 中的每 n 条记录?
- git - When converting from hg to git, can fast-export filter out folders that we don't want to move?
- python-3.x - How to write to a specific cell in excel using Pandas?
- graph-databases - Gremlin 查询以检查连接运行状况
- javascript - javascript函数没有刷新我的php代码
- java - Java 有条件地应用注解
- azure-active-directory - Azure AD 是否支持将 RelayState 作为表单 POST 变量的 SAML 请求?
- android - Android Studio 代码建议不适用于 Flutter
- drools - 在 drools DRL 检查对象数组是否没有值