播放框架1.2.5应用程序启动缓慢

时间:2013-01-27 08:25:05

标签: java hibernate playframework playframework-1.x

我正在使用Play framework 1.2.5和Hibernate 3.25来开发我的Web应用程序。我面临着应用程序启动的问题,它非常慢:(

对于任何Java EE servlet驱动的应用程序,我们使用ServletContextListener初始化会话工厂(这实际上是一项耗时的工作)。部署应用程序后,将初始化会话工厂,并且必须在应用程序准备好为最终用户使用之前完成所有这些工作。这样,当用户触发第一个请求时,第一个请求的响应时间会更快。

但是,Play框架并没有遵循任何servlet架构。因此,不确定如何实现类似于ServletContextListener的东西,它将在应用程序准备好用于最终用户之前创建所有会话工厂。

如果没有这个,第一次请求的应用程序第一次非常慢。

我确信Play Framework中可能还会有相同的内容,但我不知道。

请让我知道这件事。

3 个答案:

答案 0 :(得分:3)

您可以使用作业初始化您的应用程序。 例如,您可以使用 @OnApplicationStart 注释引导作业,该引导作业将负责加载静态数据或初始化缓存或工厂。

@OnApplicationStart
public class Bootstrap extends Job {

    public void doJob() {
        //Load static data
        //Initialise cache
        //Initialise factories
        ...
        // ready to serve application
    }
}

答案 1 :(得分:1)

您可能正在开发模式下运行应用程序,在第一次请求时,所有内容都会被懒惰地编译和初始化。生产模式在实际启动服务器之前编译所有内容。见http://www.playframework.org/documentation/1.2.5/production

答案 2 :(得分:0)

JB应该是正确的。简而言之,您可以使用--%prod选项启动服务器:

play run --%prod

play start --%prod