ストリーム リクエスト ハンドラー API

/stream リクエスト ハンドラーは、ストリーミング式を実行するだけでなく、利用可能な式の検索や登録済みのデーモン プロセスの動作制御を可能にします。

この API は v2 API の構造に従っていません。

プラグイン: 登録済みのすべての式のリスト

使用可能なすべての登録済みのストリーミング式をリストします。これには、StreamHandler によって登録された既定の式と、あなたが登録したものも含まれます。

/stream?action=PLUGINS

プラグインのレスポンス

このレスポンスには、登録された各式とその実装クラスがリストされます。

プラグインを使用した例

入力

https://127.0.0.1:8983/solr/gettingstarted/stream?action=PLUGINS

出力

{
  "plugins":{
    "enumeratedDistribution":"org.apache.solr.client.solrj.io.eval.EnumeratedDistributionEvaluator",
    "year":"org.apache.solr.client.solrj.io.eval.TemporalEvaluatorYear",
    "lteq":"org.apache.solr.client.solrj.io.eval.LessThanEqualToEvaluator",
    "upper":"org.apache.solr.client.solrj.io.eval.UpperEvaluator",
    "commit":"org.apache.solr.client.solrj.io.stream.CommitStream",
    "echo":"org.apache.solr.client.solrj.io.stream.EchoStream"
}}

リスト: デーモン プロセスをリスト

この daemon 関数を使用すると、ストリーミング式をラップして一定間隔で実行し、継続的なプッシュとプルの両方のストリーミングを提供できます。このコマンドは、現在実行中のすべてのデーモン プロセスをリストします。

/stream?action=LIST

このコマンドは、あなたがやり取りしている特定のコアに登録されたすべてのデーモン プロセスをリストし、コレクション全体ではなくそのコアをリストします。複数のシャードまたはそれらのシャードの複数のレプリカからなるコレクションがある場合、各 LIST コマンドはコア間でバウンスし、異なるプロセス リストを返します。デーモン プロセスを管理するには、デーモン プロセスをホストするために単一のコアとレプリカなしでコレクションを作成し、単一のビューを確保することをお勧めします。

リストのレスポンス

このレスポンスには、その特定のコア上の各デーモン プロセスが記述されます。

LIST を使用した例

これは、下記の単純な例と同様にデーモン プロセスを登録していることを想定しています。この例は、gettingstarted コレクションからランダムなドキュメントを 1 つ読み取り、10 秒ごとに同じコレクションに書き戻します。

daemon(
  id="12345",
  runInterval="10000",
  update(gettingstarted,
    random(gettingstarted,
         q="*:*",
         rows="1"
    )
  )
)

入力

https://127.0.0.1:8983/solr/gettingstarted/stream?action=LIST

出力

{
  "result-set":{
    "docs":[{
        "startTime":1582820357008,
        "stopTime":0,
        "id":"12345",
        "state":"TIMED_WAITING",
        "iterations":421}
      ,{
        "EOF":true}]}}

これは、ID 12345 で実行されている単一のデーモン プロセスと、それが 421 回実行されていることを示しています。各プロセスは https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Thread.html であり、状態はスレッドの状態です。

停止: デーモン プロセスを停止

/stream?action=STOP&id=12345

停止のレスポンス

このレスポンスは、デーモン プロセスの停止を報告するか、リクエストがルーティングされた特定のコア上でそれが見つからなかったことを報告します。

STOP を使用した例

入力

https://127.0.0.1:8983/solr/gettingstarted/stream?action=STOP&id=12345

出力

{
  "result-set":{
    "docs":[{
        "DaemonOp":"Deamon:12345 stopped on gettingstarted_shard2_replica_n4"}
      ,{
        "EOF":true}]}}

LIST を再度呼び出すと、プロセス記録の stopTime が入ります。

START レスポンス

このレスポンスは、デーモン プロセスの停止を報告するか、リクエストがルーティングされた特定のコア上でそれが見つからなかったことを報告します。

START を使用した例

入力

https://127.0.0.1:8983/solr/gettingstarted/stream?action=START&id=12345

出力

{
  "result-set":{
    "docs":[{
        "DaemonOp":"Deamon:12345 started on gettingstarted_shard2_replica_n4"}
      ,{
        "EOF":true}]}}

iterations のカウントは、STOP/START サイクルを通して保持されます。

KILL: デーモンプロセスを削除する

/stream?action=KILL&id=12345

KILL レスポンス

このレスポンスは、デーモン プロセスの停止を報告するか、リクエストがルーティングされた特定のコア上でそれが見つからなかったことを報告します。

KILL を使用した例

入力

https://127.0.0.1:8983/solr/gettingstarted/stream?action=KILL&id=12345

出力

{
  "result-set":{
    "docs":[{
        "DaemonOp":"Deamon:12345 killed on gettingstarted_shard2_replica_n4"}
      ,{
        "EOF":true}]}}

デーモンプロセスが、後続の LIST コマンドに表示されなくなります。