如何获取龙卷风中ioloop中待处理任务的数量?
How to get the number of pending task in ioloop in tornado?
我正在测试用于 websocket 客户端连接的网关服务器。我目前打开 10000 个客户端连接并向我的网关服务器发送消息,它回显所有消息。
当我键入 'ctrl + c' 来停止进程时,它需要很长时间才能停止,而且堆栈跟踪信息如此之多。所以我想计算循环中待处理任务的数量,并找到一个解决方案来在没有堆栈跟踪信息的情况下更快地停止 ioloop
我在 https://www.tornadoweb.org/en/stable/ioloop.html 中找不到任何关于 ioloop 任务计数的 api,所以我在这里问。
服务器端代码:
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))
我希望每秒计算待处理任务的数量...
如果有人能告诉我该怎么做,我将不胜感激。非常感谢!!!
Tornado 目前不提供任何方法来查明有多少任务待处理。
如果您只想在按下 ctrl-c 时抑制堆栈跟踪并尽快退出,您可以 运行 signal.signal(signal.SIGINT, signal.SIG_DFL)
。这也意味着您无法捕获 KeyboardInterrupt
并从中恢复。
我正在测试用于 websocket 客户端连接的网关服务器。我目前打开 10000 个客户端连接并向我的网关服务器发送消息,它回显所有消息。 当我键入 'ctrl + c' 来停止进程时,它需要很长时间才能停止,而且堆栈跟踪信息如此之多。所以我想计算循环中待处理任务的数量,并找到一个解决方案来在没有堆栈跟踪信息的情况下更快地停止 ioloop
我在 https://www.tornadoweb.org/en/stable/ioloop.html 中找不到任何关于 ioloop 任务计数的 api,所以我在这里问。
服务器端代码:
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))
我希望每秒计算待处理任务的数量... 如果有人能告诉我该怎么做,我将不胜感激。非常感谢!!!
Tornado 目前不提供任何方法来查明有多少任务待处理。
如果您只想在按下 ctrl-c 时抑制堆栈跟踪并尽快退出,您可以 运行 signal.signal(signal.SIGINT, signal.SIG_DFL)
。这也意味着您无法捕获 KeyboardInterrupt
并从中恢复。