저는 Elasticsearch 클러스터에서 특정 유형의 모든 문서를 삭제하는 컬 요청을 트리거하기 위해 셸 스크립트를 사용하고 있습니다. 성공하면 Logstash가 시작되어 삭제된 유형의 문서를 다시 색인화하려고 시도합니다.
printf "\n%s\n" "Sending delete request..."
RESPONSE=$(curl --max-time 600 -XPOST
"https://mycluster.com:9243/locations/ca/_delete_by_query?conflicts=proceed" -H
'Content-Type: application/json' -d' { "query": { "match_all": {} } }'
--user user:password)
if [[ $RESPONSE == *"deleted"* ]]; then
echo $RESPONSE
printf "\n%s\n" "Delete successful, starting Logstash..."
cd /home/denroot/EP-logstash && bin/logstash -f /home/denroot/EP-
logstash-configs/locations/create/california.config
else
echo $RESPONSE
printf "\n%s\n" "Delete failed, shutting down..."
fi
제가 겪고 있는 문제는 이 특정 유형의 문서가 500만 개 이상 있다는 것입니다. 5분이 지나기 전에 Elasticsearch 삭제 작업이 완료되지 않고 내 컬 요청이 종료 코드 0으로 종료됩니다. 이런 일이 발생하는 것을 방지하기 위해 --max-time을 사용할 수 없는 것 같습니다. 일반적으로 Elasticsearch의 삭제 작업이 완료되면 제어 흐름 논리가 제대로 작동하는 데 필요한 JSON 응답 본문을 다시 보냅니다. 이 5분 종료 문제를 방지하는 데 도움을 주시면 대단히 감사하겠습니다. 이에 대한 선례를 찾을 수 없는 것 같습니다.
답변1
스크립트는 10분 후에 종료됩니다.
한도를 해제하는 최대 시간을 늘리거나 제거해 보세요.
서버 측에서 5분 제한 시간이 지정된 경우 예상되는 출력/종료 코드를 받을 때까지 컬 명령을 여러 번 실행해 볼 수 있습니다.