タスク管理

Solr は、ユーザーが特定の種類の長時間実行タスクを監視(およびキャンセル)できるタスク管理フレームワークを提供します。現在サポートされている「タスク」のタイプはクエリのみですが、将来的には追加のタイプが追加される可能性があります。

タスク管理のためのタスクの登録

タスクの追跡と管理はオプトイン機能です。追跡は個々のタスクで明示的に有効にする必要があります。クエリ(現在サポートされている唯一の「タスク」タイプ)の場合、これはクエリパラメータとして `canCancel` ブールフラグを指定することで行われます。値 `true` はタスク管理を有効にし、`false`(デフォルト)は無効のままにします。

Solr は追跡のために各タスクに UUID を割り当てます。ユーザーは必要に応じて、`queryUUID` クエリパラメータを使用して、任意の文字列でこれを上書きできます。(ユーザーは、提供する `queryUUID` 値が一意であり、他の実行中のタスクと競合しないようにする責任があります。)生成されたかユーザーが提供したかにかかわらず、この UUID を使用してタスクを追跡またはキャンセルできます。

タスク管理操作

タスク管理インターフェースは、次のタイプの操作をサポートしています

  1. 現在実行中のすべてのキャンセル可能なタスクを一覧表示します。

  2. 特定のタスクをキャンセルします。

  3. 特定のタスクのステータスをクエリします。

すべてのアクティブなキャンセル可能なタスクの一覧表示

現在実行中のすべてのアクティブなキャンセル可能なタスクを一覧表示するには、次の構文を使用してください

V1 API

curl -X GET "https://127.0.0.1:8983/solr/collectionName/tasks/list"

V2 API

curl -X GET "https://127.0.0.1:8983/v2/collections/collectionName/tasks/list"

サンプルレスポンス

{
  "responseHeader":{
    "status":0,
    "QTime":16},
  "taskList":[
    "0,"q=weight_i:[0+TO+200]&canCancel=true&queryUUID=0",
    "5","q=weight_i:[0+TO+200]&canCancel=true&queryUUID=5",
    "4bcd27bb-0792-4512-a699-532fa7878bd3","q=weight_i:[0+TO+200]&canCancel=true"]}

アクティブなキャンセル可能なタスクのキャンセル

アクティブなタスクをキャンセルするには、次の構文を使用してください

V1 API

curl -X GET "https://127.0.0.1:8983/solr/collectionName/tasks/cancel?queryUUID=5"

V2 API

curl -X GET "https://127.0.0.1:8983/v2/collections/collectionName/tasks/cancel?queryUUID=5"

サンプルレスポンス

タスク UUID が見つかり、正常にキャンセルされた場合

{
  "responseHeader":{
    "status":0,
    "QTime":26},
  "status":"Query with queryID 5 cancelled successfully",
  "responseCode":200}

タスク UUID が見つからなかった場合

{
  "responseHeader":{
    "status":0,
    "QTime":24},
  "status":"Query with queryID 5 not found",
  "responseCode":404}

特定のタスクのステータスの確認

特定のタスクのステータスを確認するには、次の構文を使用してください

V1 API

curl -X GET "https://127.0.0.1:8983/solr/collectionName/tasks/list?taskUUID=5"

V2 API

curl -X GET "https://127.0.0.1:8983/v2/collections/collectionName/tasks/list?taskUUID=5"

taskUUID パラメータ

`taskUUID` パラメータを使用して、ステータスを確認できるタスク UUID を指定できます。

サンプルレスポンス

{
  "responseHeader":{
    "status":0,
    "QTime":16},
  "taskStatus":"id:5, status: active"}