开源进程/任务管理服务Meproc使用之HTTP API

发布时间:2024年01月18日

本文讲述如何使用开源进程/任务管理服务Meproc的HTTP API管理整个服务。
在这里插入图片描述

Meproc所提供的全部 API 的 URL 都是相同的。

http://ip:port/proc

例如

http://127.0.0.1:8606/proc

在下面的小节中,我们使用curl命令向您展示 API 的方法、参数和请求正文。

启动任务

curl -XPOST http://127.1:8606/proc -d '{"name": "task1", "cmd": "sleep 5", "type": "once", "replica": 2, "user": "guest", "deps": ["task0"]}'

要启动任务,您应该发送带有 JSON 正文的 POST 请求。

JSON 主体的所有字段为:

  • name:指定任务名称的必填字符串字段。
  • type指定任务类型的必填字符串字段。 共有三种类型:
    • once 表示该任务将启动并仅运行一次。
    • daemon 表示该任务的进程将作为守护进程启动并运行。 这意味着如果这些进程中的每一个按预期或意外退出,都将再次启动。
    • cron 表示这是一个 cron 作业。
    • coroutine 表示这是一个 melang 协程任务。
  • cmd:必填字符串字段,指定 melang 脚本文件路径(如果 typemelang)或任务进程将执行的 shell 命令。
  • replica 必需的整数字段,指定此任务的进程数。
  • user 可选字符串字段,指定任务进程的运行用户。
  • group 可选字符串字段,指定任务进程的运行组。
  • cron 指定 cron 格式表达式的可选字符串字段。 该字段仅在typecron时生效。 该字段的默认值为“* * * * *”。
  • interval 可选整数字段,指定进程退出和再次启动之前之间的秒数。 默认值为“3”。
  • deps 可选字符串数组,指定该任务所依赖的所有任务。

重启任务

curl -XPUT http://127.1:8606/proc?name=task1

我们使用PUT请求来重新启动请求参数name指示的任务。

如果发送此请求时任务正在运行,它会先停止,然后再启动。

停止任务

curl -XDELETE http://127.1:8606/proc?name=task1

我们使用DELETE请求来停止请求参数name指示的任务。

所有正在运行的进程都将通过SIGTERM信号终止。

展示任务

curl -XGET http://127.1:8606/proc

该 API 将向您显示所有任务和所有正在运行的进程。

响应正文是 JSON,其格式为:

{
  "code": 200,
  "msg": "OK",
  "data": {
    "running": [
      {
        "command": "sleep 5",
        "pid": 4321,
        "alias": "task1:0"
      },
      {
        "command": "sleep 5",
        "pid": 4322,
        "alias": "task1:1"
      }
    ],
    "tasks": {
      "task1": {
        "name": "task1",
        "cmd": "sleep 5",
        "type": "once",
        "replica": 2,
        "user": "guest",
        "deps": [
          "task0"
        ],
        "interval": 3,
        "last_time": 1699958864,
        "run_flag": false,
        "start_time": 1699958864,
        "running": 0,
        "group": null
      }
    }
  }
}

running 字段记录了当前所有正在运行的进程的信息。

tasks字段记录所有任务,无论是否运行。 它是一个物体。 该对象中的键是任务名称,值是记录任务信息的对象。

文章来源:https://blog.csdn.net/weixin_40960130/article/details/135665986
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。