【发布时间】:2023-03-11 20:33:01
【问题描述】:
我目前有一个方法可以创建一个调度程序,以设定的时间间隔向我的演员发送消息。但是,我现在正在尝试实现系统关闭的新功能。
我可以停止创建这些调度程序的 Actor,但这不会停止调度程序。
private def initialiseTask(taskName: String, taskActorRef: ActorRef, interval: FiniteDuration,
startDelay: FiniteDuration = 0 milliseconds, message: Any = "tick"): Unit = {
logger.debug(s"Initialising task: $taskName")
system.scheduler.schedule(startDelay,
interval,
taskActorRef,
message)
logger.debug(s"$taskName initialised")
}
您可以想象,在为每个演员调用该方法时,我想为该演员启动后创建一个时间表。我之前使用过调度程序,并通过将它们分配给一个 val 来取消它们,然后在它们上使用 .cancel(),但是,鉴于此调度程序用于调度多个事情,我不确定如何取消它。
感谢您的帮助!
【问题讨论】:
标签: scala akka scheduler actor schedule