我有个主意。编写一个基于WebSocket的RPC,它将根据下面的场景处理消息。
注意:关键点是WS服务器应该是非阻塞的,并且只对以下内容负责:
注2:以某种方式存储客户端标识符并使用来自客户端的消息传递它可能是一个好主意
注3:完全没问题,因为来回对消息进行排队,简单消息处理的速度(例如,将消息作为输入并将其作为结果推回)将变得更低。目标目标是能够在池中运行处理器昂贵的操作(粗略的非实际示例:几个嵌套的“for”循环),其代码样式与处理快速消息相同。即从输入队列中弹出消息以及某种客户端标识符,处理它(可能需要一段时间)并将处理结果与客户端ID一起推送到输出队列。
问题:
致谢:
答案 0 :(得分:1)
Tornado的IOLoop
允许您通过文件描述符处理来自任何文件对象的事件,因此您可以尝试这样做:
multiprocessing.Pipe
add_handler
(使用连接的fileno()
)multiprocessing.Queue
是什