【发布时间】:2018-07-02 18:14:49
【问题描述】:
我有一个流,应该从 http api 控制(开始,停止,只有一个实例)。响应应流式传输到客户端。这里带有播放框架控制器的代码:
class Processor{
def job(): Source[Int, NotUsed] ={
stop()
Source(Stream.from(1)).delay(1.second, DelayOverflowStrategy.backpressure)
}
def stop(): Unit ={
//TODO
}
}
class MyController(process: Processor) {
def startJob = Action {
val source = process.job()
Ok.chunked(source)
}
def cancell = Action {
process.cancel()
Ok("canceled")
}
}
我需要取消工作的能力。当客户端关闭连接时,作业不应取消 - 就像日志输出一样。我读到了KillSwitches,但不明白如何将它与接受Source 的播放控制器一起使用。有什么帮助吗?
我想我需要一些输出源,不同于 Job 源。
【问题讨论】: