如何在 Play 2.3 中一直保持 Akka 运行
How to keep Akka running all the time in Play 2.3
我在使用 Play 框架 2.3 编写的网站中使用 akka 作为调度程序。我在开发环境中使用 activator run
保留了服务器 运行。
并且当我更改了一些文件并尝试访问我的网站时,Play 服务器将编译这些更改的文件并重新加载服务器,这导致 Akka 调度程序关闭并重新启动。然后我所有的计划任务都不能按正确的顺序执行,导致逻辑混乱。
我想问一下我能不能找到一种方法让Akka调度器一直保持运行直到我给它发送一个信号让它重新加载?
我可以在开发环境和生产环境中都这样做吗?
您面临的问题超出了文件的开发更改范围。您希望无论播放应用程序发生什么情况,您的 actor 都能够保持状态(可能由于其他原因而失败?)。
基本上你希望你的调度演员是持久的。将您的演员转变为执着的演员非常容易。您需要扩展 PersistentActor
并将 receive
替换为 receiveCommand
和 receiveRecover
。
状态默认保存到日志文件,但您可以选择不同的持久层。
您可以在 Akka documentation 中找到更多相关信息。
我在使用 Play 框架 2.3 编写的网站中使用 akka 作为调度程序。我在开发环境中使用 activator run
保留了服务器 运行。
并且当我更改了一些文件并尝试访问我的网站时,Play 服务器将编译这些更改的文件并重新加载服务器,这导致 Akka 调度程序关闭并重新启动。然后我所有的计划任务都不能按正确的顺序执行,导致逻辑混乱。
我想问一下我能不能找到一种方法让Akka调度器一直保持运行直到我给它发送一个信号让它重新加载?
我可以在开发环境和生产环境中都这样做吗?
您面临的问题超出了文件的开发更改范围。您希望无论播放应用程序发生什么情况,您的 actor 都能够保持状态(可能由于其他原因而失败?)。
基本上你希望你的调度演员是持久的。将您的演员转变为执着的演员非常容易。您需要扩展 PersistentActor
并将 receive
替换为 receiveCommand
和 receiveRecover
。
状态默认保存到日志文件,但您可以选择不同的持久层。
您可以在 Akka documentation 中找到更多相关信息。