首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关闭Akka流以进行资源清理

关闭Akka流以进行资源清理
EN

Stack Overflow用户
提问于 2015-09-10 16:11:30
回答 1查看 1.8K关注 0票数 3

当使用Akka流时,是否有任何方法关闭/关闭资源清理不再需要的流?

编辑:当源由无限流组成时,它可能永远不会完成,我想在完成的源之前停止它。

示例用法:

代码语言:javascript
复制
Source.from(publisher)
      .map((p) -> p)
      .to(Sink.ignore())
      .run(materializer)

有办法关闭流吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-30 11:57:52

您可以在独立的Stream上运行ActorMaterializer,并在一定时间后调用ActorMaterializer上的关机:

代码语言:javascript
复制
val actorSystem = ActorSystem()

val temporaryStream = {

  val localMat = ActorMaterializer()(actorSystem)

  import actorSystem.dispatcher
  actorSystem.scheduler.scheduleOnce(10 minutes) { localMat.shutdown() }

  Source.from(publisher)
        .map((p) -> p)
        .to(Sink.ignore())
        .run()(localMat)
}

类似地,您可以返回ActorMaterializer而不是物化流,并根据时间以外的某些外部条件关闭ActorMaterializer。

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

https://stackoverflow.com/questions/32506853

复制
相关文章

相似问题

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