У меня есть следующий фрагмент кода:Scala Future или другой способ выполнения Java недействительные методы параллельно
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 нужен тип возврата, но если я сделаю copyURLToFile типа Future [Unit], что и как я вернусь от функции?
Возможный дубликат [Операции параллельной карты?] (Http://stackoverflow.com/questions/20092855/parallel-map-operations) – senia
Вы можете просто добавить 'future' между' = 'и' {'следующим образом: 'def copyURLToFile (symbol: String) = future {' – senia
Я пробовал иметь тело функции в Future {} и рекурсивно просматривал список, но это не сработало. Рекурсия работала, но звонки на org.apache.commons.io.FileUtils.copyURLToFile не производились (файлы не были созданы). Я думаю, проблема в том, что метод Java возвращает void. – krl