我如何每5分钟执行一次Akka演员? [英] How can I have an Akka actor executed every 5 min?

查看:78
本文介绍了我如何每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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆