python - python:创建一个分离的进程并通过命令行与它通信
问题描述
我想创建一个命令行工具,它是一个带有一些我需要的自定义功能的倒数计时器。
我的想法是使用 python 脚本来启动一个在后台完成工作的进程(例如,在接近尾声时播放声音)。一旦计时器进程运行,我想通过命令行与它通信(发送查询,如“剩余”或“开始 XXmin”和“停止”等命令)。当然,定时器进程应该只有一个实例。
用法可能看起来像
>>> timer start 25min
>>> timer remaining
17:34 min remaining
>>> timer stop
timer stopped.
>>> timer start 90sec
在等待消息到达时,计时器进程需要做什么工作?反过来,接口脚本需要做什么来启动进程并在以后与它通信?使用单独的流程是实现目标的最佳方法吗?
我不知道该怎么做。我的想法听起来很简单,但我发现的几乎所有内容都与父脚本的子进程的并发性有关,这不是我想要的。
谢谢你。
解决方案
您在这里寻找的是基本的客户端-服务器架构。您将需要两个程序 - 一个在后台运行并监听消息(服务器),另一个将消息发送到服务器并处理响应(客户端)。
有很多方法可以做到这一点,而且这个领域非常复杂,所以不要指望它会超级容易。刚开始时,我建议您尝试使用http.server
使用标准库(http 服务器模块)的简单服务器。对于客户端,我建议使用requests
library。HTTP 绝对不是本地客户端-服务器设置的最佳选择,但是使用现有的库,它将是迄今为止最容易启动和运行的,一旦您对此感到满意,您可以研究其他方法如果你想。
推荐阅读
- excel - Left() & Mid() 函数 - VBA
- c# - 对 LINQ 查询范围和迭代变量使用相同的名称是一种好习惯吗?
- angular - 带和不带方括号 [] 的属性指令语法
- oracle - 如何通过 Enterprise Manager oracle 删除计划作业
- jquery - 在高端 PC 上加载网页时,从 Retina.js 收到一些错误
- java - 这个命令是什么意思 - “nohup ./standalone.sh -b 0.0.0.0 &”?
- android - 如何在 Recyclerview android 的 Endlessscrollview(Lazy Loading) 中添加搜索功能
- android - 使用开发人员有效负载验证应用内购买的 android
- c - 主函数无法调用线程函数 sum_array()
- javascript - 无法使用 css 类“填充:颜色!重要”更改 svg 图标的颜色