【发布时间】:2020-09-05 08:34:49
【问题描述】:
我不明白,为什么我在“timers.startTimerWithFixedDelay”中得到一个重载错误。我添加了 3 个参数以确保采用正确的方法,但他似乎也发现只有 2 个参数的方法非常有吸引力。
package main
import akka.actor.typed.{ActorSystem, Behavior}
import akka.actor.typed.receptionist.Receptionist
import akka.actor.typed.scaladsl.Behaviors
import scala.concurrent.duration.{Duration, FiniteDuration, MINUTES}
object Guardian {
case object Tick
val start: Behavior[Nothing] =
Behaviors.setup[Receptionist.Listing] { context =>
Behaviors.withTimers { timers =>
timers.startTimerWithFixedDelay(Tick, Tick, FiniteDuration(Duration("3 seconds").toSeconds, MINUTES))
Behaviors.same
}
}.narrow
}
object Application extends App {
ActorSystem[Nothing](Guardian.start, "system")
}
在 TimerScheduler.scala 内部,他是否无法在两者之间做出决定:
def startTimerWithFixedDelay(msg: T, delay: FiniteDuration): Unit
def startTimerWithFixedDelay(key: Any, msg: T, delay: FiniteDuration): Unit
他为什么不带3参数?
编译器错误信息:
[error] ... overloaded method startTimerWithFixedDelay with alternatives:
[error] (msg: akka.actor.typed.receptionist.Receptionist.Listing,delay: scala.concurrent.duration.FiniteDuration)Unit <and>
[error] (key: Any,msg: akka.actor.typed.receptionist.Receptionist.Listing,delay: scala.concurrent.duration.FiniteDuration)Unit
【问题讨论】:
标签: scala akka akka-typed