如何减慢 Akka-Streams 中的生产者

How to slow down the producer in Akka-Streams

我正在尝试解决 akka-streams 的问题。我希望我的初始制作人不断获取 queue/mongodb 集合并在配置的时间间隔内执行。实现它的常见做法是什么?

你的意思是在固定的时间间隔?

Source.tick(...).map(loadFromMongo) 开始?

放入 conflate that drops ticks 以防止查询数据库的频率超过下游可以处理的频率,如果这是你想要的。

另外,还有一个概念叫油门。可以按如下方式使用:

Source(...).throttle(50, 1.second, 1, ThrottleMode.Shaping)

它允许您指定一个获取间隔,例如每秒超过 50 个项目。可以在此处的文档中找到示例:http://doc.akka.io/docs/akka/current/scala/stream/stream-quickstart.html#Time-Based_Processing