首页 文章

Play框架的维护模式

提问于
浏览
3

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

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

我知道像Nginx这样的其他主要服务器软件有办法在这里显示静态资源 . 由于Play Framework也是服务器软件,它有相同的功能吗?

1 回答

  • 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 ,也可以在这些文档中提到它 .

相关问题