Olá,
Estou com um problema ao fazer o envio de dados de venda pelo Spring Batch, no caso possuo uma tarefa que deve enviar todas as vendas do dia para uma integração.
Por exemplo, no dia 05/05/2016 ocorreram 8.000 vendas, elas devem ser enviadas a partir das 00:01 hr do dia seguinte, porém, o que ocorre é que é enviado apenas 4.000, ficando para trás a metade e caso eu executo novamente o programa ele envia metade da metade, no caso as 4.000 que restaram é enviado 2.000 e deixado as outras 2.000 para trás assim sucessivamente.
Gostaria de saber como faço para resolver isso sem ter que colocar um limite gigante de paginação ?
`
@SuppressWarnings(“ALL”)
@Configuration
public class VendasPDVConfiguration {
@Bean
public ItemReader<VendaDiaria> vendaDiariatemReader(VendaDiariaDao vendaDiariaDao) {
final RepositoryItemReader<VendaDiariaECF> repositoryItemReader = new RepositoryItemReader();
repositoryItemReader.setRepository(vendaDiariaDao);
repositoryItemReader.setMethodName("findByProcessadoERPIsNull");
repositoryItemReader.setPageSize(2000);
final Map<String, Sort.Direction> sort = new HashMap<>();
sort.put("pk", Sort.Direction.ASC);
repositoryItemReader.setSort(sort);
return repositoryItemReader;
}
@Bean
public ItemProcessor<VendaDiariaDao, VendaDiariaDao> vendaDiariaDaoItemProcessor(BarERPQtdeVendidaDao barERPQtdeVendidaDao,
BarErpProdutoDao barErpProdutoDao,
BarErpFilialDao barErpFilialDao,
VendaDiariaDaoDao VendaDiariaDaoDao) {
return new VendaDiariaItemProcessor(barERPQtdeVendidaDao, barErpProdutoDao, barErpFilialDao, VendaDiariaDaoDao);
}
@Bean
public ItemWriter<VendaDiaria> vendaDiariaItemWriter(VendaDiariaDao VendaDiariaDao) {
return new VendaDiariaITemWriter(VendaDiariaDao);
}
@Bean
public Step vendaDiariaStep(StepBuilderFactory stepBuilderFactory,
@Qualifier("vendaDiariatemReader") ItemReader<VendaDiaria> reader,
@Qualifier("vendaDiariaDaoItemProcessor") ItemProcessor<VendaDiaria, VendaDiaria> processor,
@Qualifier("vendaDiariaItemWriter") ItemWriter<VendaDiaria> writer) {
return stepBuilderFactory.get("barFtVendaDiariaStep")
.<VendaDiaria, VendaDiaria>chunk(500)
.reader(reader)
.processor(processor)
.writer(writer)
.build();
}
@Bean
public Job vendaDiariaJob(JobBuilderFactory jobBuilderFactory,
@Qualifier("vendaDiariaStep") Step vendaDiariaStep
) {
return jobBuilderFactory.get("vendaDiariaJob")
.incrementer(new RunIdIncrementer())
.flow(vendaDiariaStep)
.end()
.build();
} `