在执行其他工作时通过python接收消息
我有一个python脚本a和一个python脚本B 它们都是独立运行的。我想,一旦脚本B完成执行,它应该向脚本a发送一条消息,“B完成” sockets等人可能发送了一条简单的消息。但是,脚本A正在自己做一些工作。如何在不停止执行A的情况下为B进行A侦听 非常感谢您的帮助 编辑:在执行其他工作时通过python接收消息,python,ipc,interprocess,Python,Ipc,Interprocess,我有一个python脚本a和一个python脚本B 它们都是独立运行的。我想,一旦脚本B完成执行,它应该向脚本a发送一条消息,“B完成” sockets等人可能发送了一条简单的消息。但是,脚本A正在自己做一些工作。如何在不停止执行A的情况下为B进行A侦听 非常感谢您的帮助 编辑: B是完全受CPU限制的计算。A是I/O绑定和CPU绑定的混合体。用户以不规则的间隔使用输入进行干预(类似键盘记录器的设置),其中I/O显然是击键,CPU绑定任务是对输入的键执行一些计算。有许多解决此问题的方法 您可能希
B是完全受CPU限制的计算。A是I/O绑定和CPU绑定的混合体。用户以不规则的间隔使用输入进行干预(类似键盘记录器的设置),其中I/O显然是击键,CPU绑定任务是对输入的键执行一些计算。有许多解决此问题的方法 您可能希望签出,这样可以轻松地在应用程序之间创建消息传递模式 消息通道将在它自己的线程中运行,如果与其他线程一起使用,它可能是一个“绿色”线程,以避免不必要的开销 结合gevent和zmq的几个示例:
不同消息传递模式的优秀指南: 使用这些库在a和B之间创建一个通道,该通道持续轮询新工作并报告结果
在a和B之间有一个代理的情况下,也存在一些其他解决方案,但是直接在节点之间建立链接可能更适合于您所描述的交互式ish应用程序。他们在做什么工作?CPU还是IO绑定?设置的总体情况如何?谢谢。这似乎是个好办法。如果明天还没有更简单的解决办法,我会接受的。:)这是一个简单的解决方案;)ZMQ+gevent将是我处理此需求的goto方法。您可以省略gevent并使用普通的Python线程,但是如果进程A是CPU绑定的,那么您将在线程中进行大量上下文切换,而没有任何收益。如果它是I/O绑定的,那么Python线程将非常适合。