Gibt es eine Möglichkeit, ReleaseStrategy zu verwenden oder zu simulieren, wenn ich split() mit Iteratoren verwende?ReleaseStrategy für Iteratoren
@Bean
IntegrationFlow flow(CourseRepository courseRepository, EnrollmentRepository enrollmentRepository) {
return IntegrationFlows.from(courseRepository, "findAllWithEnrollmentToProcess", c -> c
.poller(Pollers.fixedDelay(this.executionIntervalInSeconds, SECONDS)))
.split()
.transform(Course::getId)
.transform(enrollmentRepository::findUnprocessedEnrollments)
.split()
.handle(...)
// do something when split ends
.get();
}
Beide Methoden findAllWithEnrollmentToProcess und findUnprocessedEnrollments Rückkehr einen Iterator.
Ich verwende nicht .aggregate() mehr. Jetzt, vor .split() speichere ich den Iterator in einem Header und ich .filter ("headers ['iterator']. HasNext()") mit einem Verwerfungskanal. –