Scala 计划并取消未知数量的邮件发送

Scala 计划并取消未知数量的邮件发送,scala,akka,scheduler,Scala,Akka,Scheduler,我希望Actor能够scheduleOnce()通过消息接收(receive())发送消息(任意次数)。这样创建的cancelable可以通过消息接收引导cancel() 我遇到了很大的困难来考虑一个架构来处理这个问题。任何人都会对如何构建这个有多个Actors、函数等的系统有一个线索吗 我可以只cancel()定义如下的id吗 class myActor extends Actor { def Receive = { case msg(t) => {

我希望
Actor
能够
scheduleOnce()
通过消息接收(
receive()
)发送消息(任意次数)。这样创建的
cancelable
可以通过消息接收引导
cancel()

我遇到了很大的困难来考虑一个架构来处理这个问题。任何人都会对如何构建这个有多个
Actor
s、函数等的系统有一个线索吗

我可以只
cancel()
定义如下的id吗

class myActor extends Actor {
    def Receive = {
        case msg(t) => {
            createTrigger(t)
        }
        case _ => //do something
    }

    def createTrigger(t) => {
        val id/*cancellable*/ = context.system.scheduler.schedule(t milliseconds,
                                    someActor,
                                    someMessage)
    }

    def cancelSchedule(cancellable) => {
        cancellable.cancel()
    }
}

将所有计划保存在ArrayBuffer中,必要时取消。作为旁注,不要为此创建单独的
ActorSystem
。使用
context.system
我用
context.system
编辑了我的问题。是不是有一个更简单的方法来做我想做的事情,或者你的解决方案是唯一的?