Tôi có một lô khởi động mùa xuân làm việc với một cơ sở dữ liệu MongoDB để nạp một cơ sở dữ liệu MySQL. Tôi có khoảng một nửa cơ sở dữ liệu của mình đang được chương trình xử lý nhưng chỉ có 200 lỗi trong nhật ký của tôi.Chỉ một nửa cơ sở dữ liệu MongoDB đang được xử lý trong lô Xuân
Bảng BATCH_STEP_EXECUTION
cho tôi biết rằng quy trình đã hoạt động tốt (trạng thái đã hoàn thành) và hiển thị READ_COUNT
trong số 5692 mặc dù tôi có 11800 tài liệu trong cơ sở dữ liệu.
Tôi đã quên điều gì đó trong cấu hình để ngăn không đi qua toàn bộ cơ sở dữ liệu?
Đây là lớp cấu hình của tôi:
@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();
}
}
Tôi đã cố gắng để thêm param lỗiTolerant bước của tôi mà không có bất kỳ thành công – Labe
Chỉ cần một ý nghĩ, nhưng bạn có một triển khai sharded của mogodb? –
Hola! Tôi có một số câu hỏi về những gì bạn đang làm: 1) Bạn nói rằng bạn đang ăn MySQL với dữ liệu từ một bộ sưu tập mongo, bạn có nghĩ rằng một thất bại với một dữ liệu cụ thể của tôi sụp đổ chương trình? 2) 200 lỗi đó là gì? –