Продолжайте упорядочивать, объединяя несколько медленных источников в потоки akka. ⇐ JAVA
-
Гость
Продолжайте упорядочивать, объединяя несколько медленных источников в потоки akka.
Мне нужно объединить несколько медленных источников, но сохранить порядок. Если код выполняется дважды, порядок должен быть одинаковым.
Очень простое решение этой проблемы заключается в следующем:
Источник .from(разделы()) .flatMapConcat(раздел -> медленный источник(раздел)) Это работает, но медленный источник для второго раздела выполняется после первого. Я хочу запускать медленные источники параллельно, но объединять результаты в стабильном порядке.
Я пробовал так:
Источник .completionStage(Источник .from(разделы()) .map(раздел -> медленный источник(раздел).runWith(Sink.seq(), actorSystem)) .runWith(Sink.seq(), actorSystem)) .mapConcat(я -> я) .mapAsync(разделы, этап -> этап) .mapConcat(я -> я) Это работает, но мне нужно создать список для каждого раздела. Есть ли лучший способ реализовать это?
Мне нужно объединить несколько медленных источников, но сохранить порядок. Если код выполняется дважды, порядок должен быть одинаковым.
Очень простое решение этой проблемы заключается в следующем:
Источник .from(разделы()) .flatMapConcat(раздел -> медленный источник(раздел)) Это работает, но медленный источник для второго раздела выполняется после первого. Я хочу запускать медленные источники параллельно, но объединять результаты в стабильном порядке.
Я пробовал так:
Источник .completionStage(Источник .from(разделы()) .map(раздел -> медленный источник(раздел).runWith(Sink.seq(), actorSystem)) .runWith(Sink.seq(), actorSystem)) .mapConcat(я -> я) .mapAsync(разделы, этап -> этап) .mapConcat(я -> я) Это работает, но мне нужно создать список для каждого раздела. Есть ли лучший способ реализовать это?
Мобильная версия