汇总多个演员响应?

编程入门 行业动态 更新时间:2024-10-17 02:52:35
本文介绍了汇总多个演员响应?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试为我的应用程序收集健康信息,

I am trying to collect health information for my application as

class HealthMonitor extends Actor with ActorLogging { val statusReporter = new StatusReporter val versionInfo = context.actorOf(Props[VersionInfo], "versionInfo") val memoryInfo = context.actorOf(Props[MemoryInfo], "memoryInfo") def receive = LoggingReceive { case HealthReportRequest => log.debug("Generating Health Report") println("Generating Health Report") // todo (harit): should be concurrent calls and collect results versionInfo ! VersionInfoRequest memoryInfo ! MemoryInfoRequest } }

我需要什么 我需要一种可以从 versionInfo , memoryInfo 和其他一些方式收集响应的方法信息随后变成1个响应并将其发送到某个地方

What I need I need a way wherein I can collect responses from versionInfo, memoryInfo, and some other info later into 1 response and send it somewhere

,而我不想按顺序发送或希望阻止通话,最好的方法是什么?

and I do not want a sequential or want to block the calls, what is the best way?

推荐答案

我会猜测您是要问而不是告诉,因为您是在谈论响应,因此代码应该是

I'll make a guess you meant an ask instead of a tell because you're talking about responses, so the code should be

def receive = LoggingReceive { case HealthReportRequest => log.debug("Generating Health Report") println("Generating Health Report") versionInfo ? VersionInfoRequest memoryInfo ? MemoryInfoRequest }

然后您可以输入期货。

def receive = LoggingReceive { case HealthReportRequest => versionInfo ? VersionInfoRequest mapTo[VersionInfo] memoryInfo ? MemoryInfoRequest mapTo[VersionInfo] }

然后合并

def receive = LoggingReceive { case HealthReportRequest => val version = versionInfo ? VersionInfoRequest mapTo[VersionInfo] val memory = (memoryInfo ? MemoryInfoRequest mapTo[VersionInfo]) version.flatMap(v => memory.map(m => fun(v, m) )) }

或通过for(not

or via for (not sure on the syntax)

def receive = LoggingReceive { case HealthReportRequest => val version = versionInfo ? VersionInfoRequest mapTo[VersionInfo] val memory = (memoryInfo ? MemoryInfoRequest mapTo[VersionInfo]) for { v <- version m <- memory } yield fun(v, m) }

更多推荐

汇总多个演员响应?

本文发布于:2023-11-25 23:04:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1631701.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多个   演员

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!