Skip to main content
 首页 » 编程设计

python之如何将 websocket 传递给 Python Tornado 中的子进程

2024年10月24日31me-sa

我有一个带有 Websockethandler 的 Tornado 服务器。我想创建一个 worker 池,以便将 worker 作为子进程启动并将 websocket 连接传递给 worker 。工作人员完成后,它应该向客户端发送一个答案。

def worker(message): 
    inp_dict = json.loads(message) 
    t = inp_dict["time"] 
    time.sleep(t) 
    return "Hello, World! "*int(t) 
 
class WebSocket(tornado.websocket.WebSocketHandler): 
    def check_origin(self, origin): 
        return True 
 
    def open(self): 
        print("WebSocket opened") 
 
    def on_message(self, message):     
        self.write_message(worker(message)) 
 
    def on_close(self): 
        print("WebSocket closed") 

怎么做?

请您参考如下方法:

不支持在进程之间传递连接。相反,将连接留在主进程中并使用例如multiprocessing.Queue 将简单对象(普通旧数据)来回发送到子进程。