3

阿卡似乎梦想成真。遗憾的是,与许多其他软件一样,文档和示例在某些主要方面都缺乏。既然事情的重点是提供非阻塞的并行 io,为什么他们会提供一个只返回一个字符串的 hello world。这是一个疯狂的想法:为每个单词设置一个代理,通过调用网络上的某些内容将其翻译成另一种语言,然后返回结果。

我今天转了一圈,阅读有关 Futures 和 Promises 的文档。一个可行的例子可以避免整个事情。

我在java并发包中用Future做了很多并发编程。出于某种原因,Akka 的东西似乎太复杂了。我正在做一些与我上面描述的非常接近的事情:获取请求并让多个代理通过网络完成它。我以具有 Master 和 Listener 的原始生成项目为起点,它工作正常,我只是想不出一个简单的方法来返回聚合结果。我有一个被调用的 play-mini 方法。从那里,我在一个类上调用一个方法,该方法将消息发送到代理,当它们完成运行时,它们的结果被聚合并调用监听器。我如何从中构成一个未来?所有文档都说不要阻止,但我们必须从 REST 请求中返回。

有谁知道这样的例子?超级简单。谢谢。

4

1 回答 1

2

我最终做了组合期货。效果很好。当你创建一个序列时,你仍然需要调用 Await,但是并行执行仍然会在 ⅓ 秒内返回,所以我很高兴。

至于让 Actors 处理 REST 请求,我想过给它传递一个 Future 然后等待它?可能会尝试其中的一些可能性,但我现在所拥有的工作。

这个经验对我提出的另一个问题是如何在 Actor 中实现 Ask。没有在文档中介绍并给出名称,搜索 Akka 并询问几乎没有用。

这里有一个建议:这些机制中的每一个都应该在序列图中显示。做起来有多难??

仍然对 Akka 感到非常兴奋。终于能够进行基于 Actor 的编程真是太棒了。

于 2012-04-29T18:17:01.073 回答