我是 Play 框架的新手。
我有一个命令行应用程序(在 Java 中),它在内存中加载一个大索引(大约 6GB),然后用于快速查找。我正在尝试使用 Play 框架(Scala)围绕它添加一个 REST 包装器。
我的问题是关于我应该在哪里以及如何处理这个索引的加载,以便它在启动时只完成一次并且在整个应用程序生命周期中都存在,是否有任何建议/最佳实践?
谢谢。
我是 Play 框架的新手。
我有一个命令行应用程序(在 Java 中),它在内存中加载一个大索引(大约 6GB),然后用于快速查找。我正在尝试使用 Play 框架(Scala)围绕它添加一个 REST 包装器。
我的问题是关于我应该在哪里以及如何处理这个索引的加载,以便它在启动时只完成一次并且在整个应用程序生命周期中都存在,是否有任何建议/最佳实践?
谢谢。
您可以将加载逻辑包装在onStart
自定义插件的方法中:
class IndexPLugin(app: Application) extends Plugin {
private var index:Index
override def onStart() {
// perform the loading here
// the app parameter gives you access to the application configuration
}
def queryData():Data {
// this public method gives your client access to the loaded data
}
}
看看 Global 对象,它让你做初始化任务,链接到官方文档http://www.playframework.com/documentation/2.0.1/ScalaGlobal