如何并行化递归 bash 函数?

如何并行化递归 bash 函数?

我有一个 bash 函数,主要curl是一组链接的端点,并再次递归地卷曲每个链接(对于另一组链接)。

task() {
  link="$1"
  response=$(curl "$link")
  
  # save response data to file...

  # process response to find another set of links and save to variable x...
  if condition
      echo "$x" | while read -r link
        task "$link"
}

上面的代码产生大约 100 个curl 操作,这需要很长时间。主要是端点的响应时间(而不是处理时间)是瓶颈。

状况

  1. 我们有 0 个关于有多少链接的信息。如果不curl首先使用父链接,我们就无法拥有子链接。
  2. 每个响应curl link都应自动保存到文件中

甚至可以并行化这个过程吗?如果解决方案需要(或者更优雅)GNU parallel或其他外部工具,我没问题。

答案1

相关内容