首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使Akka-2实例每隔n TimeUnits给自己发送一条消息,而不会使邮箱溢出

使Akka-2实例每隔n TimeUnits给自己发送一条消息,而不会使邮箱溢出
EN

Stack Overflow用户
提问于 2012-02-23 04:54:17
回答 1查看 1.1K关注 0票数 5

Akka-2实例应该保持在无限循环中,并每10分钟检查一次要处理的数据。

如何设计循环,使实例调用自身,检查要做的工作,然后休眠一段时间?

我还发现不能再查询邮箱大小了。如何确保只要工作任务(在本例中是分派功能)处于活动状态,消息就会被忽略?

代码语言:javascript
复制
case class Dispatch()

// Automatical start? The start function has been removed since Akka 2 ?
val dispatcher = system.actorOf(Props[MailDispatcher])

class MailDispatcher extends Actor {

  private val interval = Config.getLong("mail.check.interval")
  context.setReceiveTimeout(Duration(interval, TimeUnit.SECONDS))

  def receive = {
    case ReceiveTimeout => {
      self ! Dispatch          
    }
    case Dispatch => dispatch()
    case e: Exception => Logger.error("unexpected Error: " + e)
  }

  def dispatch() {       
      // trigger mail-dispatch       
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-23 05:48:11

我会提出以下建议:

用法:http://akka.io/docs/akka/2.0-RC2/scala/actors.html#initial-receive-timeout

然后,当您收到ReceiveTimeout消息时,您将轮询工作,并将工作发送到您自己的邮箱。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9402811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档