如何在不立即终止消息的情况下关闭akka系统?

时间:2014-09-13 10:59:10

标签: scala akka

我编写了一个测试,它向akka系统中的actor发送了几条消息。测试完成后,akka系统将被关闭。问题是消息在处理之前会被处理为同步和系统关闭。

有没有办法告诉akka系统等待,直到邮箱中的所有邮件都由actor处理然后关闭?

2 个答案:

答案 0 :(得分:3)

Akka没有直接的机制来做这件事(即没有这方面的API)。但是http://letitcrash.com/post/30165507578/shutdown-patterns-in-akka-2中记录了实现这一点的方法。检查本文中的“The Reaper”说明。本文还记录了Akka没有直接提供这种机制的原因。

答案 1 :(得分:0)

您应该使用Akka TestKit之类的内容:

override def afterAll {
  TestKit.shutdownActorSystem(system)
}

有关详细信息,请参阅文档。