我有以下代码:
stringList map copyURLToFile // List[String]
def copyURLToFile(symbol: String) = {
val url = new URL(base.replace("XXX", symbol))
val file = new File(prefix + symbol + ".csv")
org.apache.commons.io.FileUtils.copyURLToFile(url, file)
}
如何使copyURLToFile并行执行?
Scala Futures需要一个返回类型,但如果我制作Future[Unit]类型的copyURLToFile,我该如何从函数返回?
如果您想要一种非常简单的方法来并行化它,那么只需使用并行集合库映射列表即可。
stringList.par.map(copyURLToFile).toList
您需要返回一些东西,如何知道哪些文件是下载的?
将您的代码更改为:
def copyURLToFile(symbol: String): (String,String) = {
val url = new URL(base.replace("XXX", symbol))
val file = new File(prefix + symbol + ".csv")
org.apache.commons.io.FileUtils.copyURLToFile(url, file)
return (symbol, file)
}
然后生成的集合将包含符号和下载它们的文件的路径。