澄清问题:
我有以下访问网络和本地资源的脚本。我想将网络连接限制为 N(网站速度很慢),并且本地资源访问 ( executeLocalNetworkProcess
) 不应阻止其他网络请求。(所以它总是会运行 N 个网络请求)。
有些类别的项目很少,而另一些类别的项目很多。应该为所有类别的所有项目运行并行执行以利用网络连接。
let categories = getCategories() // get a seq of category from web service
for c in categories do
getItemsByCategory c // returns a seq of item from web
|> Seq.iter (fun (item, _) -> // Want to process N items in parallel
getMoreDataFromWeb item // from web
executeLocalNetworkProcess item // local disk/network access; may take a while
downloadBigFile item // from web
)
在 F# 中实现它的最佳方法是什么?