是否可以将现有Java项目转换为Spring-Batch作业

时间:2016-11-30 21:09:42

标签: java spring spring-batch

我的问题没有绒毛

Spring-Batch是一个正确的工具,用于将少数一次性(一个和完成类型)的Java项目转换为他们自己独立的“作业”,这些项目在某些时候与数据库交互。 -Batch项目?

使用Fluff / Background

我工作的公司有几个“一次性”的java项目,它们只做一件事(无论是在任意时间,还是在我们告诉它的时候),然后它们就完成了。他们倾向于在生命周期的某个阶段与数据库进行交互,但不一定是在同一时间。

还有一些我负责创建的项目/脚本,但是我们想要将所有这些项目放在一个盒子中,而不是在我们的盒子上放置近10个不同的perl脚本和几个罐子。当我们需要运行它们时(在理想情况下通过命令行args在远程盒子上运行)。从我在Spring-Batch上完成的研究来看,它听起来就像我们正在寻找的那样,尤其是功能described here

我对Spring-Boot和Spring Framework有一定的熟悉,但由于某些原因阅读了Jobs和设置,域语对我来说似乎有些陌生,我只是想确保我不是浪费我的时间试图弄清楚这是不现实的。我们希望这是一个适合任何当前或未来独立运行项目的舒适场所,以便最大限度地减少我们盒子上的混乱。为了澄清,我一直在说项目,但据我所知,如果要成为Spring-Batch项目的一部分,这些项目需要转换为Jobs。这是现实吗?

1 个答案:

答案 0 :(得分:1)

(将评论转换为答案)

如果诸如任务调度,事务管理,消耗数据块,启动/停止操作的灵活性,重试机制之类的东西,你会发现自己花时间编写自己的代码然后肯定看看Spring Batch它有已经实施的所有上述设施。

如果您的应用程序包含许多移动部件,耗费大量外部资源,您可能会使用Apache Camel潜入 EIP (企业集成模式)水域。和Spring Integration非常可靠的实施。

根据您的描述,您的一次性项目是合理的单一焦点,因此新框架的学习曲线可能不值得。在这种情况下,如果有意义的话,可能只需关注项目的可重用组件并将它们外部化到核心/帮助程序库上以实现可重复使用的目的。