Python 创建新进程,停止、重启 用什么模块比较合适

2021-05-29 09:07:19 +08:00
 among
有这样一搞需求,创建一个新进程,类似 flask 的, 需要一直开着。
后续还需要修改一些配置项,需要停止、重启 flask 。最好还能够和这个进程通讯。

用什么模块比较合适,用 celery,celery 的异步处理,我也不需要异步。而且进程必须启动了就一直在。

并且后续还有跨机器的需求,在另一个机器上启动对应的进程。

这块,大家有什么思路吗,谢谢。
2259 次点击
所在节点    Python
11 条回复
pabupa
2021-05-29 09:23:56 +08:00
ch2
2021-05-29 09:37:02 +08:00
把进程注册为 systemctl 服务,os.system("systemctl restart xxx")
ClericPy
2021-05-29 09:38:08 +08:00
supervisord 有 RPC 接口, 远程操作内置库就可以
当年看到过 circus, 不过没用习惯, 其他的流行起来的不多
among
2021-05-29 09:48:25 +08:00
谢谢
@ClericPy,此外,这些任务也不是固定的,会按照不同的参数来启动,可能是 3 个,也可能是 5 个。
在前端会有一些创建、停止、重启的请求。
ClericPy
2021-05-29 09:52:43 +08:00
@among 我司目前用 supervisor + RPC 操作的创建机器开关机器. 虽然感觉走 systemd 更优雅一点, 不确定后者是不是有远程接口

supervisor 有 group 概念可以一次起多个关多个. 不同参数要传给 supervisor 吗, 还带进程通讯, 感觉整复杂了, 也没看明白到底是做什么
among
2021-05-29 09:55:02 +08:00
@ClericPy
谢谢答复。

原始需求是做一个类似 mock 服务的一个平台。

准备用 flask 来实现,根据前端用户的配置,生成配置文件。然后根据配置文件,启动不同的 flask 或普通 tcp 的进程。

这里面会有,动态创建,选择机器,重启,的任务在里面。
ClericPy
2021-05-29 10:06:46 +08:00
感觉一开始最好直接问 mock 服务平台相关的...

没做过类似的, 如果是我可能会考虑 consul 服务注册发现或者直接走单个 mock 服务加 nginx 帮我反代成多个. 帮不了你了
dayeye2006199
2021-05-29 12:11:47 +08:00
多机,还需要灵活可配置,上 kubernetes 吧。进程做进容器里,叫 k8s api 启动关闭容器资源。

要求不高的话,上一个比较轻量的 k3s 就行
no1xsyzy
2021-05-29 12:57:34 +08:00
碎片化的一些信息:
k8s 可以对容器进行编配
traefik 可以根据 k8s 的状态动态生成转发规则
(虽然我都没用过
qile1
2021-05-29 23:40:18 +08:00
我是 window 系统类似需求,我想两个程序互相控制,简单参数传递,比如重启动!一直没有好办法,之前研究就是使用 sick 通讯或者 rpc 通讯,window 有窗口句柄传参,python 写的程序可以发送但是没接收成功。其实打开关闭程序好弄 重启动这个不好弄。
pb 程序挺好,两个程序直接可以直接传参。
另外多进程可以用 q 来 put 和 get,问题是我需求是两个 python 打包微 exe 程序间通讯
no1xsyzy
2021-05-30 03:07:55 +08:00
demo 阶段一般不把这种运维设施算进去吧
如果你确实要把自动编配也 demo 进去的话,还是 supervisord 吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/779958

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX