Расширение StreamApp
просит вас предоставить stream
def. Имеет параметр requestShutdown
.
def stream(args: List[String], requestShutdown: F[Unit]): Stream[F, ExitCode]
Я предоставляю для этого реализацию и понимаю, что args
передается в качестве аргументов командной строки. Однако я не уверен, что предоставляет параметр requestShutdown
и что я могу с ним сделать.
В частности, я хотел бы вызвать плавное завершение работы Stream[IO, ExitCode]
, который запускает сервер Http4s (который блокируется навсегда).
Похоже, нужен Signal
и его нужно установить? Базовый поток, к которому я пытаюсь «добраться», выглядит так:
for {
scheduler <- Scheduler[IO](corePoolSize = 1)
exitCode <- BlazeBuilder[IO]
.bindHttp(port, "0.0.0.0")
.mountService(services(scheduler), "/")
.serve
} yield exitCode
Мой stream
def: здесь и StreamAppSpec
из проекта fs2 есть что-то в _ 12_, но я не могу понять, как бы это приспособить.