我有一个由shell脚本执行的curl命令集合。现在我想要的是所有这些命令都必须在规则的时间间隔内执行(每个curl URL都不同),所以我想要做的是对进行异步调用
wait [sec]
命令并在不同的等待时间执行不同的功能,例如

启动5个计时器,一个120秒,2个30秒,3个3000秒等。
然后,一旦它们完成,我想触发附加到每个超时的处理程序函数的执行。
我可以使用javascript和nodejs轻松完成此操作,因为它们是事件驱动的编程语言。但是我对shell脚本知之甚少。因此,我还可以如何实现此目标或在Shell脚本中进行此类异步调用?
我不知道我是否足够清楚,如果我不够清楚,我还应该提到其他哪些细节?

最佳答案

可以尝试的东西:

delayed_ajax() {
  local url=$1
  local callback=$2
  local seconds=$3

  sleep $seconds
  curl -s "$url" | "$callback"
}

my_handler() {
  # Read from stdin and do something.
  # E.g. just append to a file:
  cat >> /tmp/some_file.txt
}

for delay in 120 30 30 3000 3000; do
  delayed_ajax http://www.example.com/api/something my_handler $delay &
done

关于bash - 如何在Shell脚本中进行异步函数调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24118224/

10-11 06:44