Tornado:所有 IOLoop 实例的全局变量

Tornado: global variable for all IOLoop instances

我有一个简单的 tornado/redis 聊天,它有一个带有听众的池(简单的 dict,用户名作为键,websocket 对象作为值)所以一个人(假设主持人)可以修改用户的 websocket 对象,例如禁止某人。但是当我启动多个 IOLoop 实例时,我突然意识到这个池不再是全局的了。所以问题是,是否可以在所有 IOLoops 之间拥有共享变量之类的东西?在像这样分叉 IOLoop 之前,我试图让这个池成为应用程序的一部分:

app = Application()
app.listeners = {}
http_server = HTTPServer(app)
http_server.bind(8181)
http_server.start(0)

但是没有用。

要在不同的 Python 进程之间共享数据,数据必须存储在某些中央进程(如数据库服务器)中。我建议将您的共享数据放在 Redis 中,因为您已经在使用它了。