如何延迟应用程序启动以执行某些初始化



我的应用程序需要在应用程序启动时获取一些资源包。我希望应用程序等待加载这些资源,并且在加载完成之前不提供任何请求所以我基本上想要好的旧java阻塞行为。因此,我尝试在应用程序的Global单例对象中的Unit方法beforeStart中放置一些阻塞行为。

object Global extends GlobalSettings {
  override def onStart(app: Application) {
    Logger.info("begin: Global.onStart")
    val resourcesFetched = ResourceService.fetchResourceBundles()
    import scala.concurrent.duration._
    Await.result(resourcesFetched, 30.second)
    Logger.info("end: Global.onStart")
  }
}

这种方法目前对我有效,但对我来说很尴尬。我应该使用其他钩子吗?我在文档中没有找到合适的内容。

如果这正是你想要的Global.onStart正是你应该做的,我相信没有比这更好的地方了,你可以影响启动过程,让整个Web应用程序等待它完成。

最新更新