Scala群发URL下载

时间:2012-08-28 06:44:19

标签: http scala concurrency

我最近对学习Scala感兴趣(目前主要通过Project Euler工作),我决定使用一个简单的程序:一个简单的并发下载程序。我很难绕过一个好方法来做这件事。

我非常了解Python,我喜欢gevent库的工作方式。我想做的是用gevent here来解决。有没有一种简单的方法在Scala中做这样的事情,或者我完全走错了路?我看过Dispatch库,但似乎难以理解。我应该使用演员吗?

任何帮助或指导将不胜感激。感谢。

1 个答案:

答案 0 :(得分:6)

好的,我确实同意Dispatch文档目前有点粗糙和小,但未来可能会发生变化(这是很多很棒的Scala库的情况)。

但是根据您的需要应用Dispatch的结果非常引人注目:

import dispatch._
(1 to 100).map{ i => 
   Http(url("http://bash.org/?" + i) OK as.String) 
}.map{ f => 
  try {Some(f.apply)} catch {case e => println(e.getMessage); None}
}.seq.flatten

这将为您提供bash.org前100个引号的文件。