导致龙卷风ioloop在停止时失速的可能原因是什么?

时间:2018-05-30 08:45:22

标签: python tornado

我有一个龙卷风应用程序,它继续接收和处理来自10个websocket连接的websocket消息。该程序将每1小时重新启动一次。我添加了一个简单的行:

ioloop.call_later(3600, ioloop.stop)

使ioloop停止。

但我发现有时程序会在调用ioloop.stop并退出时停止4-5分钟。

我知道当ioloop停止时,打开的websocket没有正确清理。实际上,当程序停止时,使用netstat我可以看到websocket连接仍然是打开的,并且recv-Q充满了消息。

所以我的问题是导致程序停滞的原因以及原因?提前谢谢。

1 个答案:

答案 0 :(得分:0)

现在我知道了答案,因为我使用python ThreadPoolExecutor来运行一些阻塞操作,当ThreadPoolExecutor关闭时,它等到所有的期货都解决了。