多数のプロセスを実行せずに繰り返しAPIリクエストを実行する

多数のプロセスを実行せずに繰り返しAPIリクエストを実行する

次のスクリプトファイル "bored.sh"があります。ファイルは再帰的に自分自身を呼び出します。

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

私はこれが複数のインスタンスを作成し、システムリソースを使用する多くのプロセスを実行して最終的にシステムをクラッシュさせるので、これが悪いアプローチであることに気づきました。

スクリプトが実行された後(一連のAPI呼び出しとこれらの応答をファイルに保存する)、前のスクリプトのすべてのインスタンスを順次シャットダウン/終了できますが、このスクリプトが1つまたは複数のサブプロセスでのみ無期限に実行されるようにしてそれを減らすどうすればいいですか?私に負担となる圧力システム?

編集する 毎秒APIからデータを取得し、「bored.json」ファイルに保存する必要があります。

ベストアンサー1

上記のコミュニティコメントの助けを借りて、この問題を見つけることができました。上記のコードのように、ファイル自体を再帰的に呼び出すのではなく、ループステートメントを使用して要件を繰り返します。コードスニペットは次のとおりです。

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

これで期待していた性能が得られますよ!

おすすめ記事