2

什么是适合执行大规模并发 S3 调用的 scala 库,我在哪里可以找到显示如何使用该库的示例代码?我已经搜索和试验了好几天,但没有找到足够的解决方案。

许多库将 S3 调用实现为离散阻塞调用。其他人将它们实现为线程阻塞调用。一些暗示支持承诺/未来的潜力,但给出的例子不足。

简化问题:如何向 S3 发送 URL、标头和正文并立即返回,当 S3 响应时,我想在上下文中获取响应。

完整问题:我如何构造 1000 个 URL、标头和正文,发送它们并立即返回,当每个响应到达时,将响应与正确的接收者连接起来。

在我尝试过的库中(并非详尽无遗)如下:

  • 派遣(仍然是最有可能的候选人)
  • akka.dispatch
  • 喷气机3t
  • s3lib

欢迎任何回应。

4

2 回答 2

0

查看基于 NIO 构建的https://github.com/dispatch/reboot 。

要使用它,你可以做一些简单的事情

import dispatch._

def foo = {
  val svc = url("http://api.hostip.info/country.php")
  val country = Http(svc OK as.String)
  val length = for (c <- country) yield c.length
}

您可以在并行集合中执行此操作,因为这些都承诺解除阻塞.. 例如要并行执行 1000 次,请输入以下内容

(1 to 1000).par.foreach(foo)
于 2012-10-07T02:18:42.603 回答
0

从第一眼看代码 Apache Async HttpClient 是真正的异步

http://hc.apache.org/httpcomponents-asyncclient-dev/examples.html

您可以编写一个简单的包装器,从完成处理程序创建一个 Scala 未来

您还可以查看 Grizzly/Netty 支持的 http 客户端

于 2013-06-04T12:12:09.983 回答