我有一个由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/