scaffeine finite durations

pull/6208/head
Thibault Duplessis 2020-03-22 12:37:24 -06:00
parent 0df472ff34
commit 7def875ae0
4 changed files with 9 additions and 9 deletions

View File

@ -1,10 +1,10 @@
package lila.memo
import com.github.blemale.scaffeine.Cache
import scala.concurrent.duration.Duration
import scala.concurrent.duration.FiniteDuration
// calls a function when a key expires
final class ExpireCallbackMemo(ttl: Duration, callback: String => Unit)(implicit mode: play.api.Mode) {
final class ExpireCallbackMemo(ttl: FiniteDuration, callback: String => Unit)(implicit mode: play.api.Mode) {
private val cache: Cache[String, Boolean] = lila.memo.CacheApi
.scaffeine(mode)

View File

@ -2,9 +2,9 @@ package lila.memo
import com.github.blemale.scaffeine.Cache
import com.github.ghik.silencer.silent
import scala.concurrent.duration.Duration
import scala.concurrent.duration.FiniteDuration
final class ExpireSetMemo(ttl: Duration) {
final class ExpireSetMemo(ttl: FiniteDuration) {
private val cache: Cache[String, Boolean] = CacheApi.scaffeineNoScheduler
.expireAfterWrite(ttl)

View File

@ -1,14 +1,14 @@
package lila.memo
import ornicar.scalalib.Zero
import scala.concurrent.duration.Duration
import scala.concurrent.duration.FiniteDuration
/**
* side effect throttler that allows X ops per Y unit of time
*/
final class RateLimit[K](
credits: Int,
duration: Duration,
duration: FiniteDuration,
name: String,
key: String,
enforce: Boolean = true,
@ -69,7 +69,7 @@ object RateLimit {
key: String,
enforce: Boolean = true,
log: Boolean = true
)(rules: (String, Int, Duration)*): RateLimiter[K] = {
)(rules: (String, Int, FiniteDuration)*): RateLimiter[K] = {
val limiters: Seq[RateLimit[K]] = rules.map {
case (subKey, credits, duration) =>

View File

@ -2,12 +2,12 @@ package lila.security
import com.github.blemale.scaffeine.Cache
import org.joda.time.Instant
import scala.concurrent.duration.Duration
import scala.concurrent.duration.FiniteDuration
import lila.common.base.StringUtils.levenshtein
import lila.user.User
final class Flood(duration: Duration) {
final class Flood(duration: FiniteDuration) {
import Flood._