최대 5번 실패하는 xargs 명령을 재시도하는 방법

최대 5번 실패하는 xargs 명령을 재시도하는 방법

내 대본에 문제가 있었습니다. 나는 xargs와 컬을 사용하여 REST API에 100,000개 이상의 컬 명령을 실행하고 때로는 그 중 일부가 502 또는 504 오류로 실패합니다.

내가 해야 할 일은 포기하기 전에 최대 5번까지 실패한 컬 명령을 다시 시도하는 것입니다.

이것은 내 코드 조각입니다.

cat "$output.txt" | xargs -P 16 -I {} -L 1 curl -u >> response.txt

Output.txt 파일에는 100,000개가 넘는 컬 명령이 있습니다. response.txt에서 컬 명령의 응답을 캡처하여 무엇이 실패했는지 알 수 있습니다. 내 response.txt 파일은 다음과 같습니다

Sending message: 8506 : response: 200
Sending message: 8507 : response: 504
Sending message: 8505 : response: 200
Sending message: 8509 : response: 200

504 오류로 인해 실패하는 메시지 8507을 재시도하기 위해 xargs를 사용하는 컬 코드 줄을 어떻게 변경합니까?

504 오류 응답을 response.txt 파일에 저장하기 전에 가로챌 수 있어야 한다고 생각합니다. 그런데 오류가 발생한 명령을 xargs로 다시 시도하는 방법을 모르겠습니다.

누구든지 도와줄 수 있나요?

답변1

GNU Parallel을 사용하면 다음과 같습니다:

cat "$output.txt" |
  parallel --retries 5 -P 16 -I {} -L 1 curl -u >> response.txt

또는:

cat "$output.txt" |
  parallel --retries 5 -P 16 curl -u >> response.txt

관련 정보