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

本文讲述如何使用开源进程/任务管理服务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字段记录所有任务,无论是否运行。 它是一个物体。 该对象中的键是任务名称,值是记录任务信息的对象。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/337495.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Tensorflow 入门基础——向LLM靠近一小步

进入tensflow的系统学习,向LLM靠拢。 目录 1. tensflow的数据类型1.1 数值类型1.2 字符串类型1.3 布尔类型的数据 2. 数值精度3. 类型转换3.1 待优化的张量 4 创建张量4.1 从数组、列表对象创建4.2 创建全0或者1张量4.3 创建自定义数值张量 5. 创建已知分布的张量&…

Linux重定向:深入理解与实践

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:晴る—ヨルシカ 0:20━━━━━━️💟──────── 4:30 🔄 ◀️ ⏸ ▶️ ☰ &…

深度学习记录--Momentum gradient descent

Momentum gradient descent 正常的梯度下降无法使用更大的学习率,因为学习率过大可能导致偏离函数范围,这种上下波动导致学习率无法得到提高,速度因此减慢(下图蓝色曲线) 为了减小波动,同时加快速率,可以使用momentum…

linux内核原理--分页,页表,内核线性地址空间,伙伴系统,内核不连续页框分配,内核态小块内存分配器

1.分页,页表 linux启动阶段,最初运行于实模式,此阶段利用段寄存器,段内偏移,计算得到物理地址直接访问物理内存。 内核启动后期会切换到保护模式,此阶段会开启分页机制。一旦开启分页机制后,内…

Navicat平替工具,一款免费开源的通用数据库工具

前言 前段时间有小伙伴在群里提问说:因为公司不允许使用破解版的Navicat,有好用的Navicat平替工具推荐吗?今天分享一款免费开源的通用数据库工具:DBeaver。 DBeaver工具介绍 DBeaver是一款免费的跨平台数据库工具,适…

转转交易猫自带客服多模板全开源完整定制版源码

商品发布; 请在后台商品添加成功后, 再点击该商品管理,可重新编辑当前商品的所有信息及配图以及支付等等相关信息 可点击分享或者跳转,将链接地址进行发布分享 请在手机端打开访问 访问商品主要模板文件路径目录 咸鱼&#…

四个简单的bat脚本

Windows11 最大劝退点就是这个右键菜单,复制粘贴都变成一点点的小图标,最气人的是点击底部的显示更多选项才能展示全部功能。让许多本来点一次就能完成的操作变成两次。其实使用一个小命令就能修改回win10版本的菜单。四个简单的bat脚本,能完…

Java大型企业进销存系统

技术框架: SpringBoot Spring Data Jpa SpringMvc Shiro安全认证 完整权限系统 easyui 有需要的可以联系我。 运行环境: jdk8 IntelliJ IDEA maven 系统介绍: 导航菜单:系统菜单、销售管理、库存管理、统计报表、基础…

Ubuntu使用docker-compose安装redis

ubuntu环境搭建专栏🔗点击跳转 Ubuntu系统环境搭建(十三)——使用docker-compose安装redis 文章目录 Ubuntu系统环境搭建(十三)——使用docker-compose安装redis1.搭建文件夹2.docker-compose.yaml配置文件3.redis.co…

【JavaWeb】XML Tomcat10 HTTP

文章目录 一、XML1.1常见配置文件类型 二、Tomcat102.1 WEB项目的标准结构2.2 Tomcat目录2.3 WEB项目部署的方式2.4 IDEA中开发并部署运行WEB项目2.5 处理配置文件2.6 处理依赖jar包问题2.7 IDEA部署-运行web项目 三、HTTP3.1 HTTP协议的会话方式3.2 请求和响应报文3.3.1 报文的…

数字IC后端设计实现 | PR工具中到底应该如何控制density和congestion?(ICC2Innovus)

吾爱IC社区星友提问:请教星主和各位大佬,对于一个模块如果不加干预工具会让inst挤成一团,后面eco修时序就没有空间了。如果全都加instPadding会导致面积不够overlap,大家一般怎么处理这种问题? 在数字IC后端设计实现中…

前端实现贪吃蛇功能

大家都玩过贪吃蛇小游戏,控制一条蛇去吃食物,然后蛇在吃到食物后会变大。本篇博客将会实现贪吃蛇小游戏的功能。 1.实现效果 2.整体布局 /*** 游戏区域样式*/ const gameBoardStyle {gridTemplateColumns: repeat(${width}, 1fr),gridTemplateRows: re…

RabbitMQ与SpringAMQP

MQ,中文是消息队列(MessageQueue),字面来看就是存放消息的队列。也就是事件驱动架构中的Broker。(经纪人!) 1.RabbitMQ介绍 微服务间通讯有同步和异步两种方式 同步(通信&#xff0…

实现SERVLET应用程序

实现SERVLET应用程序 Smart Software 的开发人员希望开发一个Web应用程序,使用servlet显示保存在表中的雇员信息。该应用程序需要有用户界面,用户可在该用户界面中指定要查看雇员数据的雇员ID。该界面还应显示网站被访问的次数。 解决方案 要解决上述问题,需要执行以下任务…

PWM之舵机

舵机又称直流电机,如下图 本节承接上节,具体的PWM技术已经在上一节讲的很详细了,本节就不再讲了,那么我们的重点就放在直流电机的工作原理上了。 一、工作原理 我们研究直流电机,主要式研究直流电机旋转速度的调节&a…

2024年最热门的网络安全自学学习方法,一网打尽!

学好网络安全是一个复杂而又迫切的需求,特别是在当今数字化时代。对于零基础的人来说,建议按照以下步骤和原则学习网络安全,以建立坚实的基础。 第一步:了解网络安全的基础概念 在学习网络安全之前,首先需要了解一些…

keep-alive组件缓存

keep-alive组件缓存 从a跳b,a已经销毁,b重新渲染;b跳a,b销毁a重新渲染 源组件销毁,目标组件渲染 组件缓存:组件实例等相关( 包括vnode)存储起来 重新渲染指的是:把视图重…

街机模拟游戏逆向工程(HACKROM)教程:[14]68K汇编-标志寄存器

在M68K中,有许多条件分支指令,和jmp指令一样也会修改PC达到程序跳转或分支的目的,不过这些会根据一些情况或状态来选择是否跳转。而在M68K中,有一个特别的寄存器来标记这些情况。 CCR(状态标志寄存器) CCR寄存器是用来保存一些对…

回调地狱与解决方案

什么是回调地狱? 简单理解就是回调函数嵌套回调 示例: setTimeout(() > {console.log(1);setTimeout(() > {console.log(2);setTimeout(() > {console.log(3);}, 1000);}, 2000)}, 3000)如上代码所示,回调函数嵌套回调,就…

Rustdesk自建服务搭建好了,打开Win10 下客户端下面状态一直正在接入网络,无法成功连接服务器

环境: Rustdesk1.2.3 自建服务器 有域名地址 问题描述: Rustdesk自建服务搭建好了,打开Win10 下客户端下面状态一直正在接入网络,无法成功连接服务器 解决方案: RustDesk是一款免费的远程桌面软件,它允许用户通过互联网远程连接和控制其他计算机。它是用Rust编程语…