首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >http4s关机需要30秒?

http4s关机需要30秒?
EN

Stack Overflow用户
提问于 2022-12-01 12:42:46
回答 1查看 37关注 0票数 1

我正在学习http4s并尝试文档中的基本示例,我注意到了一些奇怪的东西。简单地启动和停止服务器可以正常工作,但是如果发送了任何请求,那么优雅的关机大约需要30秒(在此期间,新传入的请求仍将被处理和响应)。

这是代码:

代码语言:javascript
复制
object Main extends IOApp.Simple {
  val helloWorldService = HttpRoutes.of[IO] {
    case GET -> Root / "hello" / name =>
      Ok(s"Hello, $name.")
  }.orNotFound

  def server[F[_] : Async : Network]: EmberServerBuilder[F] = {
    EmberServerBuilder
      .default[F]
      .withHost(ipv4"0.0.0.0")
      .withPort(port"8000")
  }

  def run: IO[Unit] = {
    server[IO]
      .withHttpApp(helloWorldService)
      .build
      .use(_ => IO.never)
  }
}

这既发生在稳定版本(0.23.16)和dev (1.0.0-M37)版本上。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-12-01 16:23:32

究其原因,是浏览器/邮递员使连接保持活动状态。只需关闭邮递员后,请求关闭连接和关闭是立即的。

EmberServerBuilder.withShutdownTimeout设置来控制关闭连接等待关闭的时间。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74642041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档