У меня есть сервер веб-сокетов, написанный на торнадо Python. сервер будет получать много подключений от клиентов, и, как вы знаете, у нас есть функция on_message
, которая запускается при получении сообщения веб-сокета. Итак, вот мой вопрос: если сообщение (скажем, запрос от клиента) должно обрабатываться в течение 5 секунд, то когда сервер обрабатывает какой-либо запрос, сервер переходит в режим блокировки и не может принять или получить больше соединения или данных. после некоторого исследования я понял, что Asyncio
может решить мою проблему, но я не знаю, как ее использовать. Итак, как мне вызвать метод process
, чтобы избежать блокировки?
следующий мой код:
class WavesClient(tornado.websocket.WebSocketHandler):
def check_origin(self, origin):
return True
def open(self):
print("New client connected")
def on_message(self, message):
self.process(message)
def on_close(self):
print("Client disconnected")
def process(self,message):
#it takes 5 sec to complete