みんな。ポータルと管理パネルが Django に基づいているオンライン ゲームに取り組んでいますが、ゲームとリアルタイム サービス (フィード、チャット) は Tornado ノンブロッキング I\O に基づいています。
リアルタイム転送には、SockJS-tornado と SockJS クライアントを利用しました。
フィード モジュールについて質問があります。これで、次のアーキテクチャができました。
- フィードは django 側で生成されます
- Django は celery.execute.send_task メソッドを使用してパラメーター付きのタスクを発行します
- トルネード側のセロリ ワーカーがそれを消費し、各サブスクライバーのフィードを mongodb に保存します。
- tornado はまた、各オンライン サブスクライバーにリアルタイムで新しいフィードを通知する必要があります (セロリ ワーカーが異なる (隔離された) 環境を持っているという問題)
ただし、前述の 4 点に問題があります。セロリとトルネードは環境が隔離されているため、フィードハンドラーにアクセスできません。memcacheを利用して、セロリ環境の別の環境からインスタンスにアクセスする方法はありますか? または、セロリが何らかの方法でアプリケーションと環境を共有できる可能性がありますか?!
前もって感謝します!