我正在尝试针对一个非常旧的数据库编写一些代码,如果它非常困难,它会崩溃。
我正在寻找我的演员每秒处理超过X条消息的方式。
现在,我猜这个actor的默认实现是它尽可能快地处理其消息框中的消息。
但是我想知道是否有一种方法可以配置我的actor,以便每秒从actor消息队列中获得“X”个消息数量的限制。
答案 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
发送消息。