Я пытаюсь решить проблему с потоками akka. Я хочу, чтобы мой первоначальный производитель постоянно извлекал коллекцию очереди/mongodb и делал это в течение настроенного интервала. Какова обычная практика для ее реализации?
Как замедлить производителя в Akka-Streams
comment
Изменить: кажется, что Source.tick является законным методом решения этой проблемы. Это позволяет периодически подавать ввод с использованием заданного интервала. Его можно найти в: akka.stream.scaladsl.Source.tick(..)
- person λ Allquantor λ   schedule 20.05.2016
Ответы (2)
Вы имеете в виду через фиксированный интервал времени?
Начать с Source.tick(...).map(loadFromMongo)
?
Добавьте объединение, которое отбрасывает галочки чтобы предотвратить запросы к БД чаще, чем может обработать нисходящий поток, если это то, что вы хотите.
person
Rüdiger Klaehn
schedule
20.05.2016
Кроме того, существует понятие, называемое дроссельной заслонкой. Его можно использовать следующим образом:
Source(...).throttle(50, 1.second, 1, ThrottleMode.Shaping)
Это позволяет вам указать интервал выборки, например, выше 50 элементов в секунду. Пример можно найти в документации здесь: http://doc.akka.io/docs/akka/current/scala/stream/stream-quickstart.html#Time-Based_Processing
person
λ Allquantor λ
schedule
06.06.2016