我如何每5分钟执行一次Akka演员? [英] How can I have an Akka actor executed every 5 min?
本文介绍了我如何每5分钟执行一次Akka演员?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想知道Akka中是否有任何机制可以定期执行一个actor?
I'd like to know if there are any mechanism in Akka that can have an actor executed periodically?
推荐答案
您真的不需要演员在Akka 1.3.1中执行此操作,您可以安排每5分钟调用一次函数,如下所示:
You don't really need an actor to do this in Akka 1.3.1 you can schedule a function to be called every 5 minutes like this:
Scheduler.schedule(() => println("Do something"), 0L, 5L, TimeUnit.MINUTES)
但是,如果您出于其他原因希望它成为演员,您会这样称呼它
However, if you do want it to be an actor for other reasons you would call it like this
case class Message()
val actor = actorOf(new Actor {
def receive = {
case Message() => println("Do something in actor")
}
}).start()
Scheduler.schedule(actor, Message(), 0L, 5L, TimeUnit.MINUTES)
如果您使用的是Akka 2.0,则可以这样做
If you're using Akka 2.0 then it would be done like this
val system = ActorSystem("MySystem")
system.scheduler.schedule(0 seconds, 5 minutes)(println("do something"))
或者每5分钟向演员发送一条消息
Or send a message to an actor every 5 minutes like this
case class Message()
class MyActor extends Actor {
def receive = { case Message() => println("Do something in actor") }
}
val system = ActorSystem("MySystem")
val actor = system.actorOf(Props(new MyActor), name = "actor")
system.scheduler.schedule(0 seconds, 5 minutes, actor, Message())
这篇关于我如何每5分钟执行一次Akka演员?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文