在Scala中编写并发下载程序的惯用法

时间:2016-08-10 20:57:28

标签: scala

在Python中,我通常会使用标准库中的队列(这是线程安全的),并编写一个消耗队列中URL的函数,并将下载的内容保存到磁盘。我会在threading.Threads中生成一些这样的函数。如果下载失败,我会将相同的URL再次放入队列中。

在Scala中编写类似的并发下载程序的惯用方法是什么?我应该使用哪些抽象?

1 个答案:

答案 0 :(得分:0)

此任务有几个选项:

  • 使用Future组合子(这是相当低级别的恕我直言)
  • 使用具有Akka工具包的演员(我会用这个)

您可以查看此示例项目Akka downloader

如果您更喜欢期货,请查看此示例:Scala Futures Downloader