我有一个龙卷风应用程序,它继续接收和处理来自10个websocket连接的websocket消息。该程序将每1小时重新启动一次。我添加了一个简单的行:
ioloop.call_later(3600, ioloop.stop)
使ioloop停止。
但我发现有时程序会在调用ioloop.stop并退出时停止4-5分钟。
我知道当ioloop停止时,打开的websocket没有正确清理。实际上,当程序停止时,使用netstat我可以看到websocket连接仍然是打开的,并且recv-Q充满了消息。
所以我的问题是导致程序停滞的原因以及原因?提前谢谢。
答案 0 :(得分:0)
现在我知道了答案,因为我使用python ThreadPoolExecutor来运行一些阻塞操作,当ThreadPoolExecutor关闭时,它等到所有的期货都解决了。