Bir MySQL veritabanını beslemek için bir MongoDB veritabanıyla çalışan bir yayın önyükleme kümem var. Veritabanımın yaklaşık yarısı program tarafından işleniyor ancak günlüklerimde yalnızca 200 hata gibi bir şey var.MongoDB veri tabanının yalnızca yarısı yay kümesinde işleniyor
BATCH_STEP_EXECUTION
tablosu, veritabanında 11800 belgeye sahip olmamasına rağmen, işlemin iyi gittiğini (durumun tamamlandığını) ve bir READ_COUNT
5692 görüntülendiğini bildirir.
Tüm veritabanından geçmemesi için yapılandırmadaki bir şeyi unuttum mu?
@Configuration
@EnableBatchProcessing
@Import(PersistenceConfig.class)
public class BatchConfiguration {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
SessionFactory sessionFactory;
@Bean
@StepScope
public ItemReader<CourseData> reader() {
MongoItemReader<CourseData> mongoItemReader = new MongoItemReader<>();
mongoItemReader.setTemplate(mongoTemplate);
mongoItemReader.setCollection("foo");
mongoItemReader.setQuery("{}");
mongoItemReader.setTargetType(CourseData.class);
Map<String, Sort.Direction> sort = new HashMap<>();
sort.put("_id", Sort.Direction.ASC);
mongoItemReader.setSort(sort);
return mongoItemReader;
}
@Bean
public ItemProcessor<CourseData, MatrixOne> processor() {
return new CourseDataMatrixOneProcessor();
}
@Bean
public ItemWriter<MatrixOne> writer() {
HibernateItemWriter writer = new HibernateItemWriter();
writer.setSessionFactory(sessionFactory);
System.out.println("writing stuff");
return writer;
}
@Bean
public Job importUserJob(JobBuilderFactory jobs, Step s1) {
return jobs.get("importRawCourseJob")
.incrementer(new RunIdIncrementer())
.flow(s1)
.end()
.build();
}
@Bean
@Transactional
public Step step1(StepBuilderFactory stepBuilderFactory, ItemReader<CourseData> reader, ItemWriter<MatrixOne> writer, ItemProcessor<CourseData, MatrixOne> processor) {
return stepBuilderFactory.get("step1")
.<CourseData, MatrixOne>chunk(10)
.reader(reader)
.processor(processor)
.writer(writer)
.build();
}
}
Başarısız bir şekilde adım adım hataTolerant param eklemeyi denedim – Labe
Sadece bir düşünce, ama mogodb keskin bir dağıtım var mı? –
Hola! Ne yaptığınız hakkında bazı sorularım var: 1) MySQL'i mongo koleksiyonundan veri ile beslediğinizi söylüyorsunuz, belirli bir verideki bir başarısızlığın programın çökmesi olduğunu mu düşünüyorsunuz? 2) 200 hata nedir? –