Play框架的维护模式

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

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

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

回答(1)

2 years ago

当然 . 你最好的选择是使用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 ,也可以在这些文档中提到它 .