我有一个使用 gevent-socketio 运行的烧瓶应用程序,我以这种方式创建:
server = SocketIOServer(('localhost', 2345), app, resource='socket.io')
gevent.spawn(send_queued_messages_loop, server)
server.serve_forever()
我send_queued_messages_loop
在一个 gevent 线程中启动,该线程不断轮询gevent.Queue
我的程序存储数据以将其发送到 socket.io 连接的客户端
我尝试了不同的方法来停止服务器(例如使用sys.exit
),无论是从 socket.io 处理程序(当客户端发送 socket.io 消息时)还是从正常路由(当客户端向 发出请求时/shutdown
),但无论如何,sys.exit
由于greenlets的存在,似乎失败了。
我试图先打电话gevent.shutdown()
,但这似乎并没有改变任何东西
关闭服务器的正确方法是什么?