Keeper 中的 Restful 接口

因为 Keeper 调度程序和 Master 管理程序是两个独立的程序,一方停机不会影响另一方。但是有时我们需要在 Keeper 运行时能够控制 Keeper,即能与 Keeper 通信。Keeper 提供了一些 Restful 接口用于接收外部的命令或消息。

这些接口需要通过内网访问,IP 即本机内网地址,端口号默认为7700,可以在“系统”->“Keeper 监控”->“Keeper 设置”中进行设置,如http://localhost:7700/kill/task/3306。另外所有接口的请求方法 Method 如无特别说明,是默认为PUT

在多机模式下,可以在 PQL 使用@KEEPER_HTTP_SERVICE全局变量获取任意一个节点的地址进行通信,一般返回是负载最低的那个节点。

除了首页用于测试外,其他所有接口均需要使用 TOKEN 认证权限,TOKEN 在系统中设置,对应的全局变量@KEEPER_HTTP_TOKEN。下例是一个典型的接口请求。

以下是各个接口的说明,省略域名和端口。

默认主页 /

可以测试 Keeper 是否在正常运行,或者接口服务能否在正常工作。

环境变量设置 /global/set?name=&value=

目的是对环境变量修改不重新启动 Keeper。参数namevalue必须有。因为环境变量设置总是成功,所以返回值始终为数字1

例如重启 Keeper 的参数设置为 /global/set?name=QUIT_ON_NEXT_BEAT&value=yes

重启任务 /task/restrat/{taskId}?more=&starter=

参数列表:

返回值及说明:

立即运行任务 /task/instant/{jobId}?creator=&delay=&ignore=

这个接口立即生成新的任务记录并运行。

参数列表:

返回值及说明:

杀死正在运行的任务 /task/kill/{taskId}

这个接口会杀掉正在运行的任务并返回被中断的 Action ID 列表。路径参数taskId必须有。如果指定的 Task 没有运行,则返回空数组。

返回值示例:

获取任务的运行日志 /task/logs

这个接口的请求方法为GET。需要的参数如下:

日志以文件的行式保存到运行服务器上,任务在运行时会不断的产生日志。这个接口每次请求最多返回 100 行日志,并且会返回日志读取到的位置。

如上所示,接口返回值除了有日志数据外,还会返回本次读取到的位置cursor。下次请求时,需要传递cursor的值,表示从上次读取到的位置开始继续读取日志。

杀死正在运行的调度的所有任务 /job/kill/{jobId}

这个接口会杀掉指定调度的所有任务副本,路径参数jobId必须有。返回值同上个接口。如果指定的 Job 没有运行的 Action,则返回空数组。

杀死正在运行的 Action /action/kill/{actionId}

这个接口会杀掉正在运行的 Action,路径参数actionId必须有,返回值为:

其中2035actionId,如果指定的 Action 没有运行,则返回0

重新加载所有配置 /configurations/reload

系统接口。重新加载数据源配置、数据连接配置、PQL 系统函数、PQL 全局变量等全局配置。返回值固定为1

重新加载某个连接配置 /connection/setup/{connectionId}

系统接口。重新加载指定的数据连接。

移除某个数据连接 /connection/remove/{connectionId}

系统接口。移除指定的数据连接。

重新加载某个系统函数 /function/renew?function_name=

系统接口。

移除某个系统函数 /function/remove?function_name=

系统接口。

重新加载某个全局变量 /variable/renew?variable_name=

系统接口。

移除某个全局变量 /variable/remove?variable_name=

系统接口。


参考链接


微信公众号
码农老吴  |  星源工作室  |  开发月志  |  问题反馈
联系我们:wu@qross.io     手机/微信:18618171102
京 ICP 备 20027445 号
$(h1)!