递归发出 API 请求,无需运行大量进程

递归发出 API 请求,无需运行大量进程

我有以下脚本文件“bored.sh”。该文件递归调用自身。

curl "https://www.boredapi.com/api/activity" >>./bored.json
sleep 1s
bash ./bored.sh

我意识到这是一个糟糕的方法,因为它创建了多个实例并运行许多使用系统资源的进程,最终导致系统崩溃。

如何在脚本执行(一系列 API 调用并将这些响应存储到文件)后按顺序终止/杀死脚本的所有先前实例,但确保此脚本仅作为一个或几个子进程无限期运行,并减少对我的压力系统?

编辑 我需要每秒从 API 获取数据并将其存储到文件“bored.json”中。

答案1

在上述社区评论的帮助下,我能够弄清楚这一点。我没有像上面的代码那样递归调用文件本身,而是使用循环语句来循环遍历我的需求。代码片段如下。

while true; do
curl "https://www.boredapi.com/api/activity" >>./bored.json
sleep 1s
./bored.sh; done

我能够通过这个获得预期的性能!

相关内容