mkU*_*tra 4 scala scheduling actor akka
我正在设计一个应该安排向自身发送消息的演员。
我注意到至少有两种方法可以做到这一点。
我想了解选择正确选择的区别。
第一种是akka.actor.Timers的一种方法:
def startSingleTimer(key: Any, msg: Any, timeout: FiniteDuration): Unit
Run Code Online (Sandbox Code Playgroud)
第二种是actor上下文系统的调度程序的常见方法:
final def scheduleOnce(
delay: FiniteDuration,
receiver: ActorRef,
message: Any)(implicit executor: ExecutionContext,
sender: ActorRef = Actor.noSender): Cancellable
Run Code Online (Sandbox Code Playgroud)
题:
scheduleOnce方法是一个好主意吗?akka.actor.Timers.startSingleTimer
keycontext.system.scheduler.scheduleOnce
ActorRef的receiver和可选的senderakka.actor.Cancellable因此,如果您只需要自己安排消息,请选择 akka.actor.Timers
将actor上下文传递给scheduleOnce方法是一个好主意吗?
不确定要以哪种方式进行操作,但是通常,actor上下文必须仅在receivemethod 内使用,并且不能传递到既不在的回调方法中使用的actor之外Futures。