2017-03-06 126 views
1

我想寫一些代碼針對一個非常老的數據庫,如果它的命中非常困難崩潰。Akka演員和信息節流

我正在尋找方法,我的演員每秒不會處理超過X條消息。

現在,我猜這位演員的默認實現是它儘可能快地處理其消息箱中的消息。

但是我想知道是否有一種方法可以配置我的演員,以便每秒從演員消息隊列中限制「X」個消息數。

回答

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發送消息。