流请求处理程序 API
除了运行流表达式之外,/stream
请求处理程序还允许你了解可以使用哪些表达式,并让你控制任何已注册守护进程的行为。
此 API 不遵循 v2 API 结构。 |
插件:列出所有已注册表达式
列出已注册且可供使用的所有流表达式。这包括 StreamHandler 注册的默认表达式和已注册的任何表达式。
/stream?action=PLUGINS
使用插件的示例
输入
http://localhost: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
集合中读取一个随机文档,然后每 10 秒将其写回同一集合
daemon(
id="12345",
runInterval="10000",
update(gettingstarted,
random(gettingstarted,
q="*:*",
rows="1"
)
)
)
输入
http://localhost: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,并且状态是线程的状态。