我的问题没有绒毛
Spring-Batch是一个正确的工具,用于将少数一次性(一个和完成类型)的Java项目转换为他们自己独立的“作业”,这些项目在某些时候与数据库交互。 -Batch项目?
使用Fluff / Background
我工作的公司有几个“一次性”的java项目,它们只做一件事(无论是在任意时间,还是在我们告诉它的时候),然后它们就完成了。他们倾向于在生命周期的某个阶段与数据库进行交互,但不一定是在同一时间。
还有一些我负责创建的项目/脚本,但是我们想要将所有这些项目放在一个盒子中,而不是在我们的盒子上放置近10个不同的perl脚本和几个罐子。当我们需要运行它们时(在理想情况下通过命令行args在远程盒子上运行)。从我在Spring-Batch上完成的研究来看,它听起来就像我们正在寻找的那样,尤其是功能described here。
我对Spring-Boot和Spring Framework有一定的熟悉,但由于某些原因阅读了Jobs和设置,域语对我来说似乎有些陌生,我只是想确保我不是浪费我的时间试图弄清楚这是不现实的。我们希望这是一个适合任何当前或未来独立运行项目的舒适场所,以便最大限度地减少我们盒子上的混乱。为了澄清,我一直在说项目,但据我所知,如果要成为Spring-Batch项目的一部分,这些项目需要转换为Jobs。这是现实吗?
答案 0 :(得分:1)
(将评论转换为答案)
如果诸如任务调度,事务管理,消耗数据块,启动/停止操作的灵活性,重试机制之类的东西,你会发现自己花时间编写自己的代码然后肯定看看Spring Batch
它有已经实施的所有上述设施。
如果您的应用程序包含许多移动部件,耗费大量外部资源,您可能会使用Apache Camel
潜入 EIP (企业集成模式)水域。和Spring Integration
非常可靠的实施。
根据您的描述,您的一次性项目是合理的单一焦点,因此新框架的学习曲线可能不值得。在这种情况下,如果有意义的话,可能只需关注项目的可重用组件并将它们外部化到核心/帮助程序库上以实现可重复使用的目的。