У меня есть следующие маршруты:
@Override
public void configure() throws Exception {
String overviewRoute = this.routingProperties.getReportingRoute(OverviewtRouteConstants.OVERVIEW);
this.from(overviewRoute).routeId(overviewRoute).threads(1, 100).choice()
.when(this.simple(BODY_GRAPH_NAME + GraphConstants.OVERVIEW_OPEN_LANE + "'"))
.to(this.routingProperties.getReportingRoute(OVERVIEW_OPENLANES_TO))
.when(this.simple(BODY_GRAPH_NAME + GraphConstants.OVERVIEW_BELT_DOWNTIME + "'"))
.to(this.routingProperties.getReportingRoute(OVERVIEW_BELTDOWNTIME_TO))
.when(this.simple(BODY_GRAPH_NAME + GraphConstants.OVERVIEW_LUGGAGE_THROUGHPUT + "'"))
.to(this.routingProperties.getReportingRoute(OVERVIEW_LUGGAGETHROUGHPUT_TO))
.when(this.simple(BODY_GRAPH_NAME + GraphConstants.OVERVIEW_LANE_UTILIZATION + "'"))
.to(this.routingProperties.getReportingRoute(OVERVIEW_LUGGAGETHROUGHPUT_TO))
.when(this.simple(BODY_GRAPH_NAME + GraphConstants.OVERVIEW_LUGGAGE_SCANNED + "'"))
.to(this.routingProperties.getReportingRoute(OVERVIEW_LUGGAGESCANNED_TO));
}
Конечная точка службы отдыха:
import javax.ws.rs.core.Response;
import org.springframework.stereotype.Service;
@Service(SERVICE_NAME)
public class OverviewServicesImpl extends BaseServices implements OverviewServices {
@Override
public Response overview(OverviewSearchDTO dto) {
return this.executeRouting(OverviewtRouteConstants.OVERVIEW, dto);
}
}
Контекст:
Основной маршрут OverviewRoute вызывается из конечной точки ws REST. Другие маршруты вызываются в соответствии с предложением when.
Мой интерфейс вызывает основной маршрут несколько раз параллельно.
Что я вижу:
Все маршруты, определенные в предложении «choice», вызываются последовательно (следующий маршрут вызывается после завершения предыдущего).
Что я хочу:
Я хочу, чтобы маршрут, определенный в предложении выбора, был вызван, как только вызов ws будет выполнен, а не после того, как будет выполнен предыдущий вызов.
Что я пробовал:
Apache Seda
Spring Scope: @Scope (BeanDefinition.SCOPE_PROTOTYPE)