Play框架的维护模式

时间:2015-02-24 04:01:11

标签: playframework playframework-2.0

是否有任何方法可以显示静态HTML页面,以便在Play Framework正在编译新代码时解释网站是否处于维护状态?

我可以看到我们如何手动创建维护页面,例如在进行长数据库或文件更改时(应用程序可能处于不一致状态),但是有没有内置的方法Play Framework?

我知道像Nginx这样的其他主要服务器软件有办法在这里显示静态资源。由于Play Framework也是服务器软件,它是否具有等效的?

1 个答案:

答案 0 :(得分:4)

不确定。最好的办法是使用request interceptors。这是使用请求过滤器,轻微改编自那些文档:

import play.api.Logger
import play.api.mvc._

object MaintenanceModeFilter extends Filter {
  def apply(next: (RequestHeader) => Future[Result])(request: RequestHeader): Future[Result] = {
    if (/* check for trigger */) {
      Logger.info("Sending maintenance mode response")
      Ok(/* your maintenance page */)
    } else {
      next(request)
    }
  }
}

object Global extends WithFilters(AccessLoggingFilter)

如果您愿意,可以将其与onRouteRequest一起使用,这些文档中也会提及。