2016-05-02 1 views
1

У меня есть Tornado-сервер с некоторым Websockethandler. Я хочу создать пул работников, чтобы начать работу в качестве дочернего процесса и передать соединение с веб-сервером. После того, как работник закончил, он должен отправить ответ клиенту.Как передать websocket для дочернего процесса в Porn Tornado?

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") 

Как это сделать?

ответ

1

Передача соединений между процессами не поддерживается. Вместо этого оставьте соединения в основном процессе и используйте, например, a multiprocessing.Queue для отправки простых объектов (простые старые данные) назад и вперед для дочерних процессов.

+0

Спасибо. Однако как отправить ответ от дочернего процесса на websocket-клиент? –

+0

Например, как в фрагменте кода выше. Как отправить сообщение websocket-клиенту из рабочего, запущенного в качестве дочернего процесса? –

+0

В фрагменте нет дочерних процессов. Пожалуйста, задайте новый вопрос об этом более подробно. –