繁体   English   中英

Spring Batch自定义ItemReader无法打开

[英]Spring Batch custom ItemReader won't open

我有一个Spring Batch项目,其中有JsonResouurceAsyncPagingItemReader ,这是一个自定义ItemReader ,它从Web服务异步检索数据。

此自定义ItemReader使用ExecutorService将调用提交到Web服务。 但是我在初始化它时遇到了麻烦。

我试图通过AbstractItemCountingItemStreamItemReader提供的doOpen方法对其进行初始化,但是似乎doOpen没有被调用。

Spring通过这种方式注入了ItemReader

@Bean
@JobScope
public ItemReader<Map<String, Object>> reader(@Value("#{jobParameters['lastRun']}") Date lastRun,
        @Value("#{jobParameters['codInt']}") Long codInt) {

    Map<String, Object> parameterValues = new HashMap<String, Object>();
    if (lastRun != null) {
        parameterValues.put("lastRun", DateFormatUtils.format(lastRun, dateFormat));
    }
    if (codInt != null) {
        parameterValues.put("codInt", codInt);
    }

    JsonResourceAsyncPagingItemReader<Map<String, Object>> reader = new JsonResourceAsyncPagingItemReader<>();
    reader.setHttpUrl(server + pathTemplate);
    reader.setRestTemplate(restTemplate);
    reader.setParameterValues(parameterValues);
    reader.setPageSize(pageSize);

    return reader;
}

并在以下Step进一步使用:

@Bean
public Step importProductStep() {
    return stepBuilderFactory.get("importProductJobStep")
            .<Map<String, Object>, Product>chunk(1000)
            .reader(reader(null, null))
            .processor(processor())
            .writer(writer())
            .build();
}

有什么问题的想法吗?

如果返回ItemStream或ItemStreamWriter,则应该可以。
看这张票

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM