多个python脚本将消息发送到单个中央脚本
作者:互联网
我有许多用Python 2.6编写的脚本,可以任意运行.我想有一个中央脚本收集输出并将其显示在一个日志中.
理想情况下,它将满足这些要求:
>每个脚本都将其消息发送到同一个“接收器”进行显示.
>如果第一个脚本尝试发送消息时接收器未运行,则会启动它.
>接收器也可以手动启动和结束. (虽然如果结束,如果另一个脚本尝试发送消息,它将重新启动.)
>脚本可以按任何顺序运行,甚至可以同时运行.
>在Windows上运行.多平台更好,但至少它需要在Windows上运行.
我遇到了一些提示:
> os.pipe()
>多进程
> Occupying a port
>互斥
> logging.handlers.SocketHandler
(感谢@Dan Head)
从这些作品中,我想我可以拼凑一些东西.只是想知道是否有一种明显的“正确”方式,或者我是否可以从任何人的错误中吸取教训.
解决方法:
我考虑使用logging.handlers.SocketHandler
来传递部分消息,听起来你已经考虑过记录类型用例了.
标准库日志记录工具非常灵活且配置驱动,因此您应该能够根据您的要求进行调整.
这不能处理问题的自动重启部分.对于UNIX,您可能只是使用pid文件和os.kill(pid,0)来检查它是否正在运行,但我不知道它们在Windows世界中的等价物是什么.
标签:interprocess,python,multiprocessing 来源: https://codeday.me/bug/20190827/1740684.html