supervisor 重启_supervisor_twiddler的使用

点击上方蓝字关注【 北邮郭大宝 】

Supervisor可以很好的实现Python的进程管理,但是新增进程时需要配置文件,对于需要动态创建进程的场景不是很友好,supervisor_twiddler插件可以帮助实现上述功能。本文就supervisor_twiddler的使用做简单的demo,详细内容可以查阅https://github.com/mnaberez/supervisor_twiddler

1. 安装 

pip install supervisor_twiddler

   2. 准备待管理的进程

这里使用一个faskapi的demo做为稍后supervisor管理的进程

from fastapi import FastAPIapp = FastAPI()@app.get("/")async def hello():  return "hello world, guoxingyu"

3. 修改supervisord.conf

supervisord.conf的改动有两个:第一是目前看supervisor_twiddler推荐给已有的组添加进程,所以需要在supervisord.conf中添加组名;第二是添加[rpcinterface:twiddler],内容如下:

[group:test][rpcinterface:twiddler]supervisor.rpcinterface_factory = supervisor_twiddler.rpcinterface:make_twiddler_rpcinterface

4. 通过supervisor_twiddler实现进程管理

from xmlrpc.client import ServerProxyif __name__ == '__main__':  # 通过user、passwd连接supervisor的RPC服务  server = ServerProxy("http://user:123@localhost:9001/RPC2")  # 打印目前的Group list  print(server.twiddler.getGroupNames())  # 动态新增process  server.twiddler.addProgramToGroup('test', 'helloworld', \    {'command': 'gunicorn fastapidemo:app -b 0.0.0.0:8088 -w 1 -k uvicorn.workers.UvicornWorker', 'autostart':'true', 'autorestart':'true'})    # 停止process并删除  server.supervisor.stopProcess("test:helloworld")  server.twiddler.removeProcessFromGroup("test", "helloworld")  # 查看process日志  print(server.supervisor.tailProcessStderrLog("test:helloworld",0,512))

这里主要实现了动态新增进程,关闭进程,查看日志三个子功能。


其中addProgramToGroup的具体参数可以看Github原文,第一个是Group名、第二个是process名,第三个是dict,包括supervisor配置的一些参数。

效果:

f687fda84356814e7f264f1784a25b73.png

2197e46c48583c0bf3671897c62cf451.png

不过supervisor_twiddler管理的进程不能持久化保存,当supervisor重启后,进程就不在了,需要重新动态添加进程。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab的词云,Word Cloud (词云) - JavaScript

在上一篇中已经分享了用 Python 创建词云了。接下来继续总结其他创建词云的方法。&带道术用量确示常构端析以要效开的用,近不gt;> Create Word Cloud via JavaScrip要圈器是天的年编功小还久概据含直这请框结业未商屏页屏随会维气大机域页效实一应控高标tJav…

python数据分析的步骤排序_Python数据分析

一.数据分析步骤1.提出问题2.理解数据3.数据清洗4.构建模型5.数据可视化二.朝阳医院2018年销售数据数据导入在文件路径前加r(转义符)文件可能有多个sheet,所以用sheet_name重命名参数dtypestr同意先按照字符串读入,之后再转换salesDf.head(),…

archlinux php mysql,arch linux上安装 httpd+php+mysql+ openssl(转)

arch linux上安装 httpdphpmysql openssl(转)[more]在arch linux安装则是非常的容易,只要执行:# pacman -Sy apache php mysql openssl根据提示选择输入Y即可安装!1.修改apache配置文件默认的情况,apache是不支持PHP的&#xff0c…

ai人工智能python开发_Python才是人工智能AI的首选编程语言,你值得拥有……

在所有编程语言里,Python并不算萌新,从1991年发布第一个版本,至今已经快30年了。最近几年,随着人工智能概念的火爆,Python迅速升温,成为众多AI从业者的首选语言。根据数据平台 Kaggle发布的2017年机器学习及…

php bind_param,php – 在mysqli bind_param中绑定动态变量

当我尝试下面的代码时,它会给我一个警告mysqli_stmt::bind_param(): Number of elements in type definition string doesnt match number of bind variables$stmt $mysqli->prepare(SELECT * FROM users WHERE lname ? AND fname ?);$type "ss";$param ar…

unique函数_unique函数使用场景(一)

unique函数使用场景(一)前情提示:Microsoft 365(就是原来的office 365)已经推出有一段时间了,去年年审就在项目上使用365更新的一系列动态函数来提高审计效率(大胆一点,就是更好的偷懒)。讲解动态函数的文章不多,且365普及度低&am…

php属性未定义,PHP-警告-未定义的属性:stdClass-修复?

我在错误日志中收到此警告,并想知道如何在代码中更正此问题。警告:PHP注意:未定义属性:stdClass :: $ records在440行的script.php中一些代码:// Parse object to get account ids// The response doesnt have the rec…

python做数据和大数据区别_不懂Python,不懂大数据的人,和咸鱼有什么区别?

原标题:不懂Python,不懂大数据的人,和咸鱼有什么区别?在这个处处充斥着大数据影响的时代之下,不懂Python,不懂大数据,你就可能轻易地错过身边的黄金。我们生活在数据密布的环境中,就…

c++gdal如何在大图像中截取小图像并获取其图像信息_【图像处理】OpenCV系列十 --- 边缘检测之Canny算子...

上一篇我们学习了图像处理形态学相关知识点,相信大家学习之后已经对形态学有了足够的理解了,那么接下来,我们一起来学习一下图像处理中的边缘检测吧!我们将会重点学习边缘检测各种算子和滤波器 --- Canny算子,Sobel算子,Laplace算…

php登录信息首页显示,首页登录后怎么在首页显示用户名以及隐藏登录框?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼index.php:登录页面用户名:密码:没有账号?立即注册——————————————————————————doaction.php:header("Content-type:text/html;charsetutf…

python矩阵相乘例题_百道Python入门级练习题(新手友好)第一回合——矩阵乘法...

题目描述【问题描述】编写程序,完成3*4矩阵和4*3整数矩阵的乘法,输出结果矩阵。【输入形式】一行,供24个整数。以先行后列顺序输入第一个矩阵,而后输入第二个矩阵。【输出形式】先行后列顺序输出结果矩阵&a…

笔记本屏幕30hz_你真的了解笔记本电池和电源适配器吗?

很多笔记本硬件配置相似,但续航或性能却相差一大截。实际上,笔记本的续航能力在很大程度上取决于电池;而实际性能,则还会受到电源适配器功率的影响。想认识这两个硬件,就需要从它们的基本参数谈起。笔记本电池笔记本的…

java 俄文,俄文字体在word里面是什么

在Word里输入俄语字母,一打字字体就变成宋体了,俄语字母间间距...我不知道你这个俄语输入法补丁的字库用的是什么,如果是汉字库里好像就没办法调了,试一下把字体改成西文的Times New Roman、Arial等字体看有没有变化,如果没有,那就…

excel公式不自动计算_【纯干货】值得收藏的Excel日期计算公式!

点击上面“零壹快学”关注我们小伙伴们好,今天零壹学长给大家整理了一些常用的日期计算公式,赶紧往下看吧!01根据身份证号计算出生年月--TEXT(MID(A2,7,8),"0-00-00")02根据身份证号提取性别IF(MOD(MID(A2,15,3),2),"男"…

php xml 添加节点 出问题,PHP往XML中添加节点的方法

本文实例讲述了PHP往XML中添加节点的方法。分享给大家供大家参考。具体方法如下:1. contacts.xml代码复制代码 代码如下:JJJManagerNational1971-12-222. php代码复制代码 代码如下:$tel_node null;$doc xmldocfile (contacts.xml);$contact_node $doc->root …

项目开发流程_绿维文旅:旅游项目开发模式与流程

一、旅游项目开发模式旅游综合开发是立足旅游项目自有资源基础,以旅游产业为主导,以市场为导向,以资本为驱动,以资源整合为核心,通过集中土地、资本、技术、交通、劳动力等生产要素,推进土地开发、交通建设…

java创建一个成员方法吗,java构造方法和成员方法的区别

构造方法和成员方法的区别1.构造方法构造方法作用概述给对象的数据进行初始化构造方法格式方法名与类名相同没有返回值类型,连void都没有没有具体的返回值构造方法注意事项如果你不提供构造方法,系统会给出默认构造方法如果你提供了构造方法,…

Java继承_java练习本(20190617)

公众号回复“1”,小刀拉你进学习交流群哟,妈妈再也不担心我学习没人陪伴啦~昨日翻译昨日翻译“The journey of a thousand miles begins with one step.”——Lao Tzu“千里之行始于足下。”——老子今日名言“Imagination was given to man to compensa…

爬虫 页面元素变化_爬虫 基本知识 萌新

爬虫定义网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引…

php 巧用逻辑运算符,php的神奇逻辑运算符

(小乖)今天再读php文档,看到逻辑运算符这边又发现了新天地呀,之前在探究c语言的逻辑运算符中,我们得到了一些结论而在php中,&& ||与and or 同时存在,并且表示的含义是一样,但是不同的是优先级接下来…