如何减慢 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
我正在尝试解决 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