我有一个方法,它接受一个url并返回一个Promise [Stuff]:
def getStuff(url: String): Promise[Stuff] = Http(...).map(...)
我在一个大的(~1300项)字符串列表中调用它:
Http.promise.all(urls.map(getStuff)).apply
一些承诺正确完成,但大约50个导致“java.net.SocketException:太多打开的文件”。我究竟做错了什么?也许我应该用其他方式来完成这项任务?
答案 0 :(得分:2)
这是操作系统限制。
请参阅http://wiki.magnolia-cms.com/display/WIKI/Too+Many+Open+Files,例如关于linux