Scala Play Framework数据库关闭生命周期挂钩顺序

时间:2017-06-25 23:50:58

标签: scala playframework playframework-2.0 slick

我有一个Scala(2.11.x),Play 2.5.10应用程序。在这个应用程序中,我有各种Akka actor,它们可以读写数据到数据库。我正在通过in the docs描述的生命周期停止钩子终止这些actor。对于其中一个参与者,在发送PoisonPill以终止它之前,我想向它发送一条消息,以便最后写入数据库。但是,我收到一个异常,因为收到该消息时数据库连接已被终止(有时,这是一个竞争条件)。

有没有办法在Play中控制生命周期关闭挂钩执行顺序?

1 个答案:

答案 0 :(得分:2)

scaladoc中说:

  

当应用程序关闭时执行停止挂钩,与注册时相反。

所以,不是真的。

你或许可以完全从你的演员中处理它。这是一个如何在actor系统中协调关闭的指南。我不确定这与基于游戏的应用程序的集成程度如何:http://letitcrash.com/post/30165507578/shutdown-patterns-in-akka-2