2016-05-20 4 views
0

У меня есть простой торнадо/Redis чат, который имеет бассейн со слушателями (простой Dict с именем пользователя в качестве ключа и WebSocket объекта в качестве значения), поэтому один (скажем, модератор) может изменять пользователь WebSocket объектов например, запретить кого-то. Но когда я начал несколько экземпляров IOLoop, я вдруг понял, что этот пул не является глобальным больше. Таким образом, вопрос, можно ли что-то вроде общей переменной между всеми IOLoops? Я попытался сделать этот пул часть заявки Перед разветвлением IOLoop как это:Tornado: глобальная переменный для всех экземпляров IOLoop

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

Но это не сработало.

ответ

0

Для обмена данных между различными процессами Python, данные должны быть сохранены в некотором центральном процессе, как сервер базы данных. Я предлагаю положить ваши общие данные в Redis, так как вы уже используете его.

 Смежные вопросы

  • Нет связанных вопросов^_^