Akka Actors and message Throttling

时间:2017-03-06 11:44:20

标签: java scala akka

我正在尝试针对一个非常旧的数据库编写一些代码,如果它非常困难,它会崩溃。

我正在寻找我的演员每秒处理超过X条消息的方式。

现在,我猜这个actor的默认实现是它尽可能快地处理其消息框中的消息。

但是我想知道是否有一种方法可以配置我的actor,以便每秒从actor消息队列中获得“X”个消息数量的限制。

1 个答案:

答案 0 :(得分:2)

您正在寻找TimerBasedThrottler

val printer = system.actorOf(Props[PrintActor])

// The throttler for this example, setting the rate
val throttler = system.actorOf(Props(
  classOf[TimerBasedThrottler],
  3 msgsPer 1.second))
throttler ! SetTarget(Some(printer))

然后通过限制器ActorRef发送消息。