Scala 在akka类型的actor中创建调度程序/计时器

Scala 在akka类型的actor中创建调度程序/计时器,scala,akka,akka-typed,Scala,Akka,Akka Typed,我试图在akka中创建一个调度程序,只是为了测试它,比如每x秒运行一次 def start(): Behavior[ClientMsg] = Behaviors.setup { ctx => ctx.log.info("start() called") ctx.system.scheduler.scheduleAtFixedRate(30.seconds, 5000.millis) { () => ctx.self ! TestMessage(""""this

我试图在akka中创建一个调度程序,只是为了测试它,比如每x秒运行一次

def start(): Behavior[ClientMsg] = Behaviors.setup { ctx =>
    ctx.log.info("start() called")

  ctx.system.scheduler.scheduleAtFixedRate(30.seconds, 5000.millis) { () =>
    ctx.self ! TestMessage(""""this is pretty cool"""")
  }  
}
我得到一个错误,说隐式执行上下文不在范围内

当在类型化的参与者中时,我应该从哪里获取执行上下文?
另外,这就是我应该如何设置调度器/计时器的方法吗?

在非类型Akka中,默认的
ExecutionContext
系统中的
调度程序
对象:

implicit val executionContext: ExecutionContext = ctx.system.dispatcher

我把它放在一个基类中,用于所有参与者,以及
Timeout
actormatarializer
的默认隐式,在非类型Akka中,默认的
ExecutionContext
系统中的
调度程序
对象:

implicit val executionContext: ExecutionContext = ctx.system.dispatcher

我把它放在一个基类中,用于所有参与者,以及
Timeout
actormatarializer

注意使用
Behaviors.withTimers{timers=>…}
应该优先于直接使用系统调度器,因为它处理删除计划的发送(如果参与者停止等)。

请注意,使用
行为.withTimers{timers=>…}
应该优先于直接使用系统调度器,因为它处理删除预定发送(如果参与者停止等)。

我使用的是akka类型我使用的是akka类型