swoole / rfc

Swoole 提案
116 stars 3 forks source link

RFC-1023 Admin API 支持并发请求多个目标和并发请求多个 API #78

Closed matyhtf closed 3 years ago

matyhtf commented 3 years ago

多目标请求

请求

all: 所有进程,包括 master、manager、worker、task-worker,但不包含 reactor 线程 all_worker: 所有 worker 进程 all_task_worker: 所有 task-worker all_reactor: 所有 reactor 线程,仅在PROCESS模式可用 specific: 指定的 worker,通过 GET 参数传入 workers

响应

{
  code: 0,
  data: {
     'worker-0':  {}, // worker-0 结果
     'worker-1':  {}, // worker-1 结果
     'master':  {}, // master 结果
  }
}

实例

/api/getpid/all : 请求所有进程,获取结果 /api/getpid/specific?workers[]=worker-0&workers[]=worker-1&workers[]=master&workers[]=reactor-0:请求 worker-0、worker-1、master、reactor-0

并发请求 API

可同时并发请求多个 API:/api/multi

请求

不接受第3个 url path,请求通过 POST 发起。在 POST Body 中指定具体的 API 和参数

[
    {
        "path": "/api/getpid/master?a=1&b=hello",
        "post": {}
    },
    {
        "path": "/api/getpid/all",
        "post": {}
    },
    {
        "path": "/api/close_session/master",
        "post": {"session_id": 1, "force": 0}
    }
]

POST body 为 list ,每个元素为一个请求,请求包含 pathpost 两个参数,post 可选。path 是具体请求的 API 的 url path 可带有 GET 参数。post 是传给此 APIPOST 内容。

备注:绝大部分 API 不支持 post

响应

[
  {
    code: 0,
    data: {}
  },
  {
    code: 0,
    data: {}
  },
  {
    code: 4001,
    data: {}
  },
]

响应也返回 list,与请求的顺序必须一一对应。