rename token bucket

This commit is contained in:
Thibault Duplessis 2016-03-07 12:03:40 +07:00
parent 2837b689b6
commit e68db75cee
4 changed files with 8 additions and 8 deletions

View file

@ -10,7 +10,7 @@ import play.api.mvc.WebSocket.FrameFormatter
import play.twirl.api.Html import play.twirl.api.Html
import scalaz.Monoid import scalaz.Monoid
import lila.api.{ PageData, Context, HeaderContext, BodyContext, TokenBucketGroup } import lila.api.{ PageData, Context, HeaderContext, BodyContext, TokenBucket }
import lila.app._ import lila.app._
import lila.common.{ LilaCookie, HTTPRequest } import lila.common.{ LilaCookie, HTTPRequest }
import lila.security.{ Permission, Granter, FingerprintedUser } import lila.security.{ Permission, Granter, FingerprintedUser }
@ -59,7 +59,7 @@ private[controllers] trait LilaController
} }
} }
protected def SocketOptionLimited[A: FrameFormatter](consumer: TokenBucketGroup.Consumer)(f: Context => Fu[Option[(Iteratee[A, _], Enumerator[A])]]) = protected def SocketOptionLimited[A: FrameFormatter](consumer: TokenBucket.Consumer)(f: Context => Fu[Option[(Iteratee[A, _], Enumerator[A])]]) =
LilaSocket.rateLimited[A](consumer) { req => LilaSocket.rateLimited[A](consumer) { req =>
reqToCtx(req) flatMap f map { reqToCtx(req) flatMap f map {
case None => Left(NotFound(jsonError("socket resource not found"))) case None => Left(NotFound(jsonError("socket resource not found")))

View file

@ -6,7 +6,7 @@ import play.api.libs.json._
import play.api.mvc._, Results._ import play.api.mvc._, Results._
import play.api.mvc.WebSocket.FrameFormatter import play.api.mvc.WebSocket.FrameFormatter
import lila.api.TokenBucketGroup import lila.api.TokenBucket
import lila.app._ import lila.app._
import lila.common.HTTPRequest import lila.common.HTTPRequest
@ -16,7 +16,7 @@ object LilaSocket {
private val logger = play.api.Logger("ratelimit") private val logger = play.api.Logger("ratelimit")
def rateLimited[A: FrameFormatter](consumer: TokenBucketGroup.Consumer)(f: AcceptType[A]): WebSocket[A, A] = def rateLimited[A: FrameFormatter](consumer: TokenBucket.Consumer)(f: AcceptType[A]): WebSocket[A, A] =
WebSocket[A, A] { req => WebSocket[A, A] { req =>
val ip = HTTPRequest lastRemoteAddress req val ip = HTTPRequest lastRemoteAddress req
f(req).map { resultOrSocket => f(req).map { resultOrSocket =>

View file

@ -41,7 +41,7 @@ object Lobby extends LilaController {
) )
} }
private val socketConsumer = lila.api.TokenBucketGroup.create( private val socketConsumer = lila.api.TokenBucket.create(
system = lila.common.PlayApp.system, system = lila.common.PlayApp.system,
size = 10, size = 10,
rate = 5) rate = 5)

View file

@ -38,7 +38,7 @@ private case class TokenRequest(key: Any)
* @param rate refill rate in tokens per second * @param rate refill rate in tokens per second
* @param clock for mocking the current time. * @param clock for mocking the current time.
*/ */
private class TokenBucketGroup(size: Int, rate: Float, clock: Clock) extends Actor { private class TokenBucket(size: Int, rate: Float, clock: Clock) extends Actor {
private val intervalMillis: Int = (1000 / rate).toInt private val intervalMillis: Int = (1000 / rate).toInt
@ -75,7 +75,7 @@ private class TokenBucketGroup(size: Int, rate: Float, clock: Clock) extends Act
} }
} }
object TokenBucketGroup { object TokenBucket {
private val defaultTimeout = Timeout(100, TimeUnit.MILLISECONDS) private val defaultTimeout = Timeout(100, TimeUnit.MILLISECONDS)
@ -101,7 +101,7 @@ object TokenBucketGroup {
require(size <= 1000) require(size <= 1000)
require(rate >= 0.000001f) require(rate >= 0.000001f)
require(rate <= 1000) require(rate <= 1000)
new Consumer(system.actorOf(Props(new TokenBucketGroup(size, rate, clock)))) new Consumer(system.actorOf(Props(new TokenBucket(size, rate, clock))))
} }
/** /**