多个python脚本将消息发送到单个中央脚本

Ips*_*gle 3 python multiprocessing interprocess

我有许多用Python 2.6编写的脚本,可以任意运行.我想有一个中央脚本收集输出并将其显示在一个日志中.

理想情况下,它将满足这些要求:

  • 每个脚本都将其消息发送到同一个"接收器"进行显示.
  • 如果第一个脚本尝试发送消息时接收器未运行,则启动它.
  • 接收器也可以手动启动和结束.(虽然如果结束,如果另一个脚本尝试发送消息,它将重新启动.)
  • 脚本可以按任何顺序运行,甚至可以同时运行.
  • Windows上运行.多平台更好,但至少它需要在Windows上运行.

我遇到了一些提示:

从这些作品中,我想我可以拼凑一些东西.只是想知道是否有一种明显的"正确"方式,或者我是否可以从任何人的错误中吸取教训.

Dan*_*ead 5

我考虑使用logging.handlers.SocketHandler消息传递部分,听起来你已经记住了一个日志记录类型用例.

标准库日志记录工具非常灵活且配置驱动,因此您应该能够根据您的要求进行调整.

这不能处理问题的自动重启部分.对于UNIX,您可能只是使用pid文件并os.kill(pid, 0)检查它是否正在运行,但我不知道它们在Windows世界中的等价物是什么.