gpt4 book ai didi

scala - 让 Akka-2 实例每 n 个时间单位向自己发送一条消息,而不会溢出邮箱

转载 作者:行者123 更新时间:2023-12-04 20:52:00 26 4
gpt4 key购买 nike

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

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

我也看到不能再查询邮箱大小了。只要工作任务(在本例中为调度功能)处于事件状态,您如何确保消息被忽略?

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
}
}

最佳答案

我建议如下:

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

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

关于scala - 让 Akka-2 实例每 n 个时间单位向自己发送一条消息,而不会溢出邮箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9402811/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com