如何在Play 2.3中始终保持Akka的运行

时间:2015-06-11 03:21:22

标签: playframework playframework-2.0 akka

我在使用Play framework 2.3编写的网站中使用akka作为调度程序。我在开发环境中使用{ "projects": [ "src", "tests" ], "sdk": { "version": "1.0.0-beta6-12005" } } 使服务器保持运行。

当我更改了一些文件并尝试访问我的网站时,Play服务器将编译这些更改的文件并重新加载服务器,这导致Akka调度程序关闭并重新启动。然后,我的所有计划任务都无法以正确的顺序执行,并导致逻辑混乱。

我想问一下我是否能找到一种方法让Akka调度程序一直保持运行,直到我向它发送信号让它重新加载?

我可以在dev env和prod env中做到吗?

1 个答案:

答案 0 :(得分:3)

您面临的问题超出了文件中的开发更改。无论播放应用程序发生了什么,你都希望你的演员能够保持状态(也许它因为不同的原因而失败了?)。

基本上你希望你的调度actor是持久的。将演员变为持久演员非常容易。您需要延长PersistentActor并将receive替换为receiveCommandreceiveRecover

默认情况下,状态会保存到日志文件中,但您可以选择不同的持久层。

您可以在Akka documentation中找到更多相关信息。