многопоточность верблюда apache в пределах маршрута - PullRequest
0 голосов
/ 24 августа 2018

У меня есть следующие маршруты:

    @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)

1 Ответ

0 голосов
/ 24 августа 2018

Похоже, что все предложения .when возвращают True, поэтому он следит за всеми вариантами.Я не уверен, что часть в ваших .when предложениях - это реальное сравнение?Мне не хватает того, как вы выполняете сравнение для проверки частей сообщения для сравнения и маршрутизации в контекстно-ориентированном маршрутизаторе?

...