当前位置: 首页 > 知识库问答 >
问题:

多个Spring批处理作业的JobRepository

慕阳
2023-03-14

我们正试图建立关于如何在大型IT服务中使用Spring Batch的标准,并具有不同的商业利益。

我们可能会有几个属于不同业务领域的批次。我们已经知道其中一些必须从所有批次通用的表中获取一些参数(即Java和COBOL;例如日期参数)。

我们将实现的Spring批处理作业的数量很难评估。没有重写现有COBOL批次的目标,只要有可能,就鼓励连续流程处理。

一些关于概念证明的问题不时出现,但目前几乎没有定论。

我们也已经有了一些幂等的批次,但是这些批次使用基于map的JobRepositories。然而,所有批次都是幂等的世界是一个幻想。

我们有一个问题,但我找不到相关文件或建议,如下所示。

在这种情况下,什么是JobRepositories的最佳方法?将所有数据存储到一个中央数据库中更好吗?还是每个JAR或业务单元都应该有自己的数据库?

我认为将批处理元数据与参数放在同一个位置似乎是合乎逻辑的。我不认为我们可以在parameters表所在的模式中添加表,但我们可能可以在创建Spring批处理元数据模型的模式中看到它。

真正的问题是要知道,对于所有人来说,使用一个元数据存储还是单独使用一个元数据存储更好。

我在Spring Batch的文档中没有找到任何关于这方面的建议,但如果您能提供官方建议的链接,我将不胜感激。如果不可能,任何开明的建议都值得采纳。

共有2个答案

张溪叠
2023-03-14

我同意迈克尔的所有观点,并加上一条。。。分布式事务。虽然Spring Batch尽其所能,但如果要访问多个数据库,则要么需要使用分布式事务,要么会面临数据丢失的风险。

东方淇
2023-03-14

没有“最佳”方法,你需要根据自己的需求量身定制

支持中央作业库

  • it部门的集中管理

contra中央作业库

  • 你的it部门没有集中
  • 取上面所有的并将其反转:-)
  • 业务数据与作业存储库不在同一个数据库中(例如DB2和Oracle)
    • 前方停机问题...

 类似资料:
  • 我有以下工作要处理在一定的时间间隔或特别的基础上。 作业中的步骤如下: 我也想要用户界面,在那里我可以触发一个特别的基础上的工作,而且我应该能够提供参数从用户界面。 我想用Spring batch来完成这个任务,但它更多的是用于读->处理->写之类的工作。这里,在第一步中,我正在生成由第二步读取的数据。我不确定我是否还可以使用Spring batch来实现这个,或者有更好的方法来实现这个。

  • Spring批处理作业与flatfileitemreader(从csv读取)、processor(更新adwords api提要详细信息,对于csv文件中的每个记录(大约有40条记录),这一步大约需要40秒)和正在更新DB中记录的定制writer一起使用。 web.xml

  • 到目前为止,我正在运行spring批处理,只有一个作业。现在我想运行多个不同的作业,这意味着不同的功能。在我的配置文件中,我配置了两个具有不同id和不同名称的作业。现在我得负责这些工作。你能告诉我怎么跑吗。在这里,我的疑问是在我的java类中,我已经为运行批处理编写了这段代码。 对于其他作业,如何调用jobLauncher的run方法。 我的配置文件是

  • 我在BatchScheduler中有多个计划作业,它在特定时间运行。简单的内置JobLauncher,这是同步的。在自然界中最初使用。现在,我想并行运行这些作业,这样没有作业可以等待其他作业完成。 我在不同的作业上尝试过@Async注释,但都不起作用。 然后,我尝试设置joblauncher.settaskexecutor(新的SimpleAsyncTaskExecutor())。但这并不奏效。

  • 我已经开始探索Spring Batch,并遇到了一些基本问题。