異なるRequestHandler
インスタンスのグローバルdefaultdict
にアクセスしても安全ですか?例えば。そうでない場合異なったtornado.RequestHandlerインスタンスからグローバル/共有defaultdictへのアクセス/更新
GlobalMap = defaultdict(list)
class Event(tornado.web.RequestHandler):
def get(self, unit):
# This is where the access/modify might happen
# The list.append() is just an arbitrary example
GlobalMap[unit].append(datetime.utcnow())
self.write(b'')
、異なるRequestHandler
インスタンス間でキー付きデータの検索/保存を行うための適切な方法は何ですか?
私は「トルネードは数万のオープンな接続に拡張できる」と考えました。これを実現するには、竜巻サーバーの複数のインスタンスを実行する必要があります。 tornado.pyを複数回起動すると、複数の異なるソケットアドレスにバインドする必要はありませんか?次に、着信トラフィックを複数の異なる内部ソケットにルーティングする方法はありますか?元の質問の範囲のすべての側に、しかしあなたの第2段落。 –
トルネードは何千もの接続を処理できます。複数のインスタンスを使用して作業を分散することができます。トラフィックは、gunicron、nginx、またはその他のロードバランサを使用するインスタンス間で負荷分散されます。これはエンタープライズレベルのアプリケーションの典型ですが、あなたが個人的に使用するためにTornadoを使用している場合は、複数のインスタンスについてあまりストレスを感じません。 –