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
编辑了我的问题。是不是有一个更简单的方法来做我想做的事情,或者你的解决方案是唯一的?