spring-batch - Spring批处理作业是线程安全的吗?
问题描述
我需要并行化批处理弹簧作业的单个步骤。在要并行化的步骤之前,运行小任务,将一些结果放入作业的参数中。tasklet 产生的结果对于执行 Partitioner 和要并行化的步骤的 Items 是必需的。出现了一个我真的无法解决的疑问。由于我可以使用不同的初始参数同时运行相同的作业多次,因此 tasklet 和 step 项是否安全线程安全?
解决方案
您不想运行同一作业的多个实例。在同一个步骤和/或作业中运行多个任务或流程会更好。您可能想要查找作业分区和/或远程卡盘以进行并发处理。
如果它必须是孤立的作业,那么您可能会让并发作业写出一个消息队列作为它们的结束(写入器)步骤,然后让另一个作业听从该队列读取。
https://docs.spring.io/spring-batch/2.1.x/cases/parallel.html
推荐阅读
- docker - 主机和容器之间的nginx ssl问题
- flutter - 从 Flutter 中的 Instance 获取价值
- ruby - 删除 Marklogic 中的计划任务
- amazon-s3 - 无法连接到 s3.amazonaws.com 端口 443:连接被拒绝
- android - 使用包“opentok-react-native”构建反应原生项目时出错
- html - 将多个 React 组件导入 html
- python - pandas(python)中的统计分析和绘图
- ios - 带有@EnvironmentObject 的导航栏项目
- abap - 在列表报告中进行基于意图的导航时传递参数
- asp.net-core-3.1 - 缺少类型映射配置或不支持的映射。尝试将数据分配给 DTO 对象时