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

在Spring batch中查询批处理作业元数据

邹嘉石
2023-03-14

在这个应用程序中,我使用了Spring Data JPA。它是另一个使用Spring Batch并创建这些表的应用程序。换句话说,我只想运行一个连接查询,并将它直接映射到我的定制对象,只需要一些必要的字段。在可能的范围内,我希望避免为这两个表制作分开的模型。但我不知道这里最好的方法。

共有1个答案

戎洛城
2023-03-14

如果希望从Spring批处理代码执行此操作,则需要使用JobExplorer并在start_timeend_time上应用筛选器。或者,只需使用JDBC向DB发送一个SQL查询,其中包含所需的join。可以在这里找到元数据表的DDL

编辑

如果您想尝试在SpringBatch中执行此操作,我想您需要遍历JobExecutions并找到您感兴趣的内容,然后完成您的任务。例如:

List<JobInstance> jobInstances = jobExplorer.getJobInstances(jobName);

for (JobInstance jobInstance : jobInstances) {
    List<JobExecution> jobExecutions = jobExplorer.getJobExecutions(jobInstance);
    for (JobExecution jobExecution : jobExecutions) {
        if (//jobExecution.getWhatever...)) {
        // do your thing...
        }
     }
} 
 类似资料:
  • 我正在尝试在GCP数据流中运行批处理作业。工作本身有时会占用大量内存。目前,工作一直在崩溃,因为我相信每个工作人员都在试图同时运行pcollection的多个元素。有没有办法防止每个工人一次运行多个元素?

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

  • 我想用3个步骤建立一个批次。我想配置这个步骤,就像如果有100条记录,当step1读取、处理和写入一个10块时,step02,然后step03开始和结束,然后再次返回step1,读取下一个块。这在Spring批量可能吗?

  • 我正在使用Spring batch进行批处理,在进行批处理之前,我想验证所有作业参数,如productName、productID、开始日期、结束日期、productType,如果这些作业参数为null或包含错误值,我必须使验证步骤失败,并使作业失败。 我已经编写了验证步骤和Tasklet,在我的Tasklet中,我计划处理作业参数验证(对所有作业参数执行空检查)。因为我是第一次做Spring批处

  • 第1步--第一步从数据库中读取某些事务,并生成一个记录ID列表,这些记录ID将通过jobContext属性发送到第2步。 步骤2-这应该是一个分区步骤:从步骤应该基于从步骤1获得的列表进行分区(每个线程从列表中获得不同的Id),并在不相互干扰的情况下执行它们的读/处理/写操作。 我的问题是,尽管我希望根据步骤1产生的列表对数据进行分区,但spring在步骤1开始之前就配置了步骤2(因此调用了分区器

  • 是否可以在Spring批处理中动态配置作业? 这是我想做的。我创建了几个不同的,如下所示: FlatFileItemReader 我希望能够在创建批处理作业时动态混合和匹配它们。例如,假设我需要一个有2个步骤的作业。第一步包含一个用于预处理的。第二步将有一个,用于使用我的阅读器/写入器进行基于块的数据处理......类似这样的东西: 在XML中,我可以执行以下操作: 但是我如何像上面一样以编程方式