Я тестирую сервер шлюза для подключения клиента websocket.В настоящее время я открываю 10000 клиентов для подключения и отправки сообщений на сервер шлюза, и он возвращает все сообщения.Когда я набираю 'ctrl + c', чтобы остановить процесс, требуется много времени, чтобы остановиться, и так много информации о трассировке стека.Поэтому я хочу подсчитать количество отложенных задач в цикле и найти решение, чтобы остановить ioloop быстрее без этой информации о стеке
Я не могу найти API для подсчета задач ioloop в https://www.tornadoweb.org/en/stable/ioloop.html, поэтому я спрашиваю здесь.
Код на стороне сервера:
def create_application():
return tornado.web.Application([(r'/', WebSocketHandler)])
if __name__ == '__main__':
app = create_application()
app.listen(60017)
Код на стороне клиента:
if __name__=='__main__':
try:
for i in range(1, 10000):
wsc = WSClient('ws://127.0.0.1:60017', 'pname_' + str(i))
wsc.start()
ws_list.append(wsc)
print('ws_client pname[%s] started!!!'%('pname_' + str(i)))
tornado.ioloop.IOLoop.current().add_timeout(time.time() + 1, counting_packs)
tornado.ioloop.IOLoop.current().start()
except Exception as e:
print(str(e))
Я рассчитываю подсчитывать число ожидающих задач каждую секунду... Буду признателен, если кто-нибудь скажет мне, как это сделать.Большое спасибо !!!