как использовать потоки в игре 2.6 с заголовком - PullRequest
0 голосов
/ 07 февраля 2019

Недавно я обновился до версии 2.6 с версии 2.4. У меня есть этот код

def prometheusMetrics = Action {
    val responseStream = Concurrent.unicast[Array[Byte]] { channel =>
      val writer = new WriterAdapter(channel)
      TextFormat.write004(writer, CollectorRegistry.defaultRegistry.metricFamilySamples())
      writer.close()
    }
    Ok.stream(responseStream).withHeaders("Content-Type" -> TextFormat.CONTENT_TYPE_004)
  )

  }

в версии 2.6. Он генерирует ошибку времени компиляции

myproject / app / controllers / Application.scala: 146: поток значений не является членом Application.this.Status [ошибка] Ok.stream (responseStream) .withHeaders ("Content-Type" -> TextFormat.CONTENT_TYPE_004)

, поэтому я изменил код следующим образом

def prometheusMetrics = Action {
    val responseStream = Concurrent.unicast[Array[Byte]] { channel =>
      val writer = new WriterAdapter(channel)
      TextFormat.write004(writer, CollectorRegistry.defaultRegistry.metricFamilySamples())
      writer.close()
    }
    Result(
    header = ResponseHeader(200 -> Map("Content-Type" -> TextFormat.CONTENT_TYPE_004)),
    body = HttpEntity.Streamed(responseStream)
  )
  }

но опять же это дает ошибку времени компиляции

myproject/app/controllers/Application.scala:148: type mismatch;
[error]  found   : (Int, scala.collection.immutable.Map[String,String])
[error]  required: Int
[error]     header = ResponseHeader(200 -> Map("Content-Type" -> TextFormat.CONTENT_TYPE_004)),
[error]                                 ^

как я могу добавить

"Content-Type" -> TextFormat.CONTENT_TYPE_004

в качестве заголовка здесь?Как правильно это сделать?

...