在做其他工作时通过python接收消息

时间:2013-03-22 19:47:07

标签: python ipc interprocess

我有一个python脚本A和一个python脚本B.

它们都是独立运行的。我想,一旦脚本B完成执行,它应该向脚本A发送消息,“B Done”。

套接字等人可能发送了一条简单的消息。但是,脚本A正在做一些自己的工作。如何在不停止执行A的情况下使A听B?

非常感谢任何帮助!

编辑:

B完全受CPU限制 - 计算。 A是I / O绑定和CPU绑定的混合。用户使用输入(类似于设置的键盘记录器)以不规则的间隔进行干预,其中I / O显然是键击,而CPU绑定任务是对输入的键执行的一些计算。

1 个答案:

答案 0 :(得分:1)

这个问题领域有很多解决方案。

您可能希望结帐ZMQ,这样可以轻松地在应用程序之间创建消息传递模式。

消息通道将在其自己的线程中运行,该线程可能是一个“绿色”线程,以避免与gevent一起使用时产生不必要的开销。

结合gevent和zmq的几个例子:https://github.com/zeromq/pyzmq/tree/master/examples/gevent
针对不同消息传递模式的精彩指南:ZMQ Guide

使用这些库在A和B之间创建一个频道,该频道不断轮询新作品并报告结果。

在A和B之间有代理的情况下存在一些其他解决方案,但是直接在节点之间建立链接可能更适合于您正在描述的交互式应用程序。