많은 수의 프로세스를 실행하지 않고 반복적으로 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

이것으로 기대했던 성능을 얻을 수 있어요!

관련 정보