我在使用Play framework 2.3编写的网站中使用akka作为调度程序。我在开发环境中使用{
"projects": [ "src", "tests" ],
"sdk": {
"version": "1.0.0-beta6-12005"
}
}
使服务器保持运行。
当我更改了一些文件并尝试访问我的网站时,Play服务器将编译这些更改的文件并重新加载服务器,这导致Akka调度程序关闭并重新启动。然后,我的所有计划任务都无法以正确的顺序执行,并导致逻辑混乱。
我想问一下我是否能找到一种方法让Akka调度程序一直保持运行,直到我向它发送信号让它重新加载?
我可以在dev env和prod env中做到吗?
答案 0 :(得分:3)
您面临的问题超出了文件中的开发更改。无论播放应用程序发生了什么,你都希望你的演员能够保持状态(也许它因为不同的原因而失败了?)。
基本上你希望你的调度actor是持久的。将演员变为持久演员非常容易。您需要延长PersistentActor
并将receive
替换为receiveCommand
和receiveRecover
。
默认情况下,状态会保存到日志文件中,但您可以选择不同的持久层。
您可以在Akka documentation中找到更多相关信息。