Python 程序后台运行,如何写在控制台与他交互啊。怎么自定义命令
写一个定时程序,线程始终后台执行。然后通过控制台或者 cmd 输入命令,添加新的定时任务。 这类的 python 程序都是通过什么写的啊
请教以下各位大佬。
----------------------- 以下是精选回复-----------------------
答:你是需要这个?
https://python-rq.org/
答:很简单,原教旨主义的程序是面向过程的,也就是逐条执行指令。你想要在这个基础上加上外部互动的功能,那你就需要额外再写一个能接收输入输出的过程,它可以以单独的一个线程或进程的形式存在。
答:用一个文件或数据库保存任务配置就行了,A 定时读取配置执行,B 添加任务的时候往配置写
答:一个进程轮询执行,一个进程接收数据
答:配置文件,不是定时读取,用 inotify 监听文件变化,Python 有 SDK 的。
如果不希望加 inotify 依赖的话,Python 监听 HUP 信号,收到时重载配置。手动重载用 `kill -HUP [$pid]`。如果用 systemd 管理,加一行 `ExecReload=/bin/kill -HUP $MAINPID`。
以上都在说 Linux ,Windows 的话,我就不清楚了,我不太会用 Windows.
答:# 10
以上说用配置文件是比较简便的方法,如果要比较复杂的交互,还是按楼上的说法开个线程接收数据,asyncio 开个 Task 什么的。
docker 默认是用的 Unix Socket 通信,也可以开 http 。
答:IPC 的手段很多啊, 你说的 sys.stdin 一般就够了
复杂点的最近用了下 Unix domain socket, 那高并发杠杠的, 尤其是底层 asyncio 都包好了变成 Stream 的 Reader 和 Writer, 写啥都跟写 Pipe 一样.
或者你监控一个文件夹里出现新的 py 文件就导入它?
或者开个 HTTP
反正思路很多看你愿意怎么玩了, 不过看你的意思感情就是个随时拔插的一个 systemd / supervisor 啊... 那还不如丢一堆 alias 在 tmux 里随便折腾呢
答:xml/jsonrpc
0条评论