API остановки задач агрегации
Устарело начиная с 8.11.0.
Функционал агрегации будет удален в будущей версии. Используйте downsampling вместо него.
Останавливает существующую запущенную задачу агрегации.
Запрос
POST _rollup/job/<job_id>/_stop
Предварительные условия
- Если в Elasticsearch включены функции безопасности, вам потребуется
manageилиmanage_rollupразрешение кластера для использования этого API. Дополнительная информация приведена в разделе Разрешения безопасности.
Описание
Если вы попытаетесь остановить задачу, которой не существует, произойдёт исключение. Если вы попытаетесь остановить уже остановленную задачу, ничего не произойдёт.
Параметры пути
-
<job_id> - (Обязательно, строка) Идентификатор задачи агрегации.
Параметры запроса
-
timeout -
(Необязательно, TimeValue) Если
wait_for_completionзадано какtrue, API блокируется (максимально) на указанный период, ожидая завершения работы задачи. Если время ожидания превышаетtimeout, API возвращает исключение таймаута. По умолчанию —30s.Даже если возникает исключение таймаута, запрос на остановку всё ещё обрабатывается и в конечном итоге переводит задачу в состояние
STOPPED. Таймаут означает просто, что сам API-запрос не смог завершиться в ожидании изменения состояния. -
wait_for_completion - (Необязательно, Boolean) Если установлено в значение
true, API блокируется до полного завершения индексатора. Если установлено в значениеfalse, API возвращает результат сразу же, а индексатор останавливается асинхронно в фоновом режиме. По умолчанию —false.
Коды ответов
-
404(Нет ресурсов) - Этот код указывает на отсутствие ресурсов, соответствующих запросу. Возникает при попытке остановить задачу, которой не существует.
Примеры
Поскольку удалить можно только остановленную задачу, полезно заблокировать API до полного завершения работы индексатора. Это достигается с помощью параметра wait_for_completion и (необязательно) timeout:
resp = client.rollup.stop_job(
id="sensor",
wait_for_completion=True,
timeout="10s",
)
print(resp) response = client.rollup.stop_job( id: 'sensor', wait_for_completion: true, timeout: '10s' ) puts response
const response = await client.rollup.stopJob({
id: "sensor",
wait_for_completion: "true",
timeout: "10s",
});
console.log(response); POST _rollup/job/sensor/_stop?wait_for_completion=true&timeout=10s
Параметр блокирует API-вызов до тех пор, пока задача не перейдёт в состояние STOPPED или не истечёт указанное время. Если указанное время истечёт, а задача не перейдёт в состояние STOPPED, будет выброшено исключение таймаута.
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/rollup-stop-job.html