gpt4 book ai didi

python - ZeroMQ 与子进程的双向异步通信

转载 作者:太空宇宙 更新时间:2023-11-04 04:59:28 24 4
gpt4 key购买 nike

我有一个服务器进程,它接收来自网络客户端的请求。服务器必须调用一个外部工作进程(另一个 .py ),该进程将数据流式传输到服务器,然后服务器将数据流式传输回客户端。

服务器必须监视这些工作进程并向它们发送消息(基本上是杀死它们或发送消息以控制流式传输哪种数据)。这些消息是异步的(例如,取决于网络客户端)

我想在 ipc://-transport-class 上使用 ZeroMQ 套接字,但是对 socket.recv() 方法的调用是阻塞的。

我应该使用两个套接字(一个用于将数据流式传输到服务器,另一个用于从服务器接收控制消息)吗?

最佳答案

使用单独的套接字进行信号和消息传递总是更好

虽然 Poller 实例会有所帮助,但主要步骤是使用单独的套接字发送信号,另一个套接字用于数据流。总是。关键是,在这样的设置中,Poller.poll() 和事件循环都可以保持特定于套接字,并且在实时控制期间花费不超过预定义的时间量代码执行。

因此,请毫不犹豫地设置一个更丰富的信令/消息传递基础设施作为一个环境,在这个环境中,您只会享受到更简单的控制、关注点的分离和意图的清晰度。

ZeroMQ 是执行此操作的出色工具 - 包括每个套接字 IO 线程亲和性,因此确实可以触手可及的细粒度性能调整。

关于python - ZeroMQ 与子进程的双向异步通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46139185/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com