Запрос Curl неожиданно завершился через пять минут

Я использую сценарий оболочки для запуска запроса curl, который удаляет все документы определенного типа в моем кластере 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

Проблема, с которой я столкнулся, заключается в том, что этот конкретный тип содержит более 5 миллионов документов. Задача удаления Elasticsearch не может завершиться до истечения 5 минут, и мой запрос curl завершается с кодом выхода 0. Кажется, я не могу предотвратить это с помощью --max-time. Обычно, когда задача удаления завершается в Elasticsearch, она отправляет обратно тело ответа JSON, которое мне нужно для правильной работы моей логики потока управления. Любая помощь в предотвращении этой 5-минутной проблемы с выходом будет принята с благодарностью, поскольку я не могу найти прецедента.

0
09.11.2017, 18:45
0 ответов

Теги

Похожие вопросы