首页 > 解决方案 > 从业者阅读器未启动后的春季批处理

问题描述

如果我们将文件路径划分为更大的数字,我们的 spring 批处理阅读器就不会启动

    for (int i=0;i<rows.size();i++) {
                            String invoiceNumber = (String) rows.get(i).get("DOC_REFNUM");
                            fileName = ((String) rows.get(i).get("BI_REFERENCE")).trim();
                            billMedium = (String) rows.get(i).get("BI_MEDIUM_SHDES");
                            context.put("fileName", fileName);
                                context.put("DOC_REFNUM", invoiceNumber);
                                context.put("billMedium", billMedium);
                                map.put("Process"+i, context);
                                context = new ExecutionContext(); 
                           }
    @Bean
    @Qualifier("masterStep")
    public Step masterStep() throws Exception {
        return stepBuilderFactory.get("masterStep").partitioner("slaveStep", partitioner()).step(slaveStep())
                .gridSize(30).taskExecutor(taskExecutor()).listener(new InvoiceStepListener()).build();
    }

标签: springspring-batch

解决方案


我们已经通过以下流程解决了这个问题

  1. 目前我们正在表格中获取 XML 文件路径
  2. 我们不是根据网格/线程池核心大小划分成更大的块。
  3. 每个worker slave将获得分区文件并一一处理并再次提交块以增加额外的性能。

如果您正在使用任何其他更好的选择,请添加。


推荐阅读