Kay*_*Kay 1 spring spring-batch
我了解 JobRepository 用于作业状态的 CRUD 操作。我正在使用持久性数据库,JobRepository 会在数据库中保留历史元数据还是只存储当前正在运行的进程?
另外,如果我有一系列由作业调度程序执行的作业,并且每个作业都有自己的 JobRepository 数据库,它们会共享相同的持久表还是我必须为每个 JobRepository 创建不同的数据库?
运行 spring 批处理需要作业存储库,但它是需要一些工作才能实际交付任何值的事情之一(例如设置 spring 批处理管理或编写自己的用户界面)。实际上,在我见过的大多数使用 Spring Batch 的项目中,作业存储库纯粹是一个只写的东西,往往会被完全忽略。你必须拥有它,没有人看过它。使用 sql 客户端在表中挖掘以查找带有错误、警告和堆栈跟踪的日志,如果您正确设置日志记录并且正确执行日志记录是任何严肃的服务器端业务的硬性要求。
恕我直言,考虑到它增加了很多复杂性,使作业存储库可选将是一件好事。大多数项目根本不需要它。并且大多数确实需要它的项目(例如多节点批处理集群)也应该考虑其他实际上旨在提供跨集群状态管理的技术(例如 Zookeeper)。此外,在这一点上,您最好查看 Spring Cloud、hadoop 或类似解决方案之类的东西。Spring批处理是实现这些解决方案的垫脚石。
需要注意的一些事项:
.incrementer(new RunIdIncrementer())在您的作业中添加一个。| 归档时间: |
|
| 查看次数: |
3218 次 |
| 最近记录: |