Scala 如何降低Akka溪流中的生产者速度

Scala 如何降低Akka溪流中的生产者速度,scala,akka,akka-stream,Scala,Akka,Akka Stream,我正在尝试解决akka streams的一个问题。我希望我的初始生产者持续获取队列/mongodb集合,并在配置的时间间隔内执行。实现它的常见做法是什么?您是指在固定的时间间隔内 从源代码开始。勾选(…).map(loadFromMongo) 如果您需要的话,请输入一个,以防止查询数据库的频率超过下游处理的频率。此外,还有一个称为throttle的概念。它可以如下使用: Source(...).throttle(50, 1.second, 1, ThrottleMode.Shaping) 它允

我正在尝试解决akka streams的一个问题。我希望我的初始生产者持续获取队列/mongodb集合,并在配置的时间间隔内执行。实现它的常见做法是什么?

您是指在固定的时间间隔内

从源代码开始。勾选(…).map(loadFromMongo)


如果您需要的话,请输入一个,以防止查询数据库的频率超过下游处理的频率。

此外,还有一个称为throttle的概念。它可以如下使用:

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

它允许您指定一个抓取间隔,例如每秒超过50个项目。可以在此处的文档中找到一个示例:

Edit:看来Source.tick是解决此问题的合法方法。它允许使用指定的间隔定期发送输入。可以在:akka.stream.scaladsl.Source.tick(..)中找到它