hereに示すように、私はcherrypy wsgiサーバによって提供されるPython Djangoアプリケーションを設定しました。このアプリは基本的に別のIRCクライアントです。ここでは契約があります:確立する必要のある新しいサーバー接続ごとにボットのインスタンスをいくつか作成しなければならない可能性が非常に高いです。私は各ボットと通信できる必要があります。 1つの答えはmultiprocessing.Queue
を使用することでした。このオブジェクトは永続的なデータであり、私がボットと通信できるようにします。しかし、私はすべてのボットが同じ信号を同時に聞いて、例えば停止する必要があります。すべてのボットは、停止信号が彼のためかどうかを制御する必要があります。したがって、私は別のデーモンスレッドで動作する各ボットがシグナルの束を聞くことを可能にするオブジェクトまたは他の方法が必要です。 cherrypyがサーバワイドメッセージ用に使っているBusシステムは素晴らしいですが、ここでは過剰なもののように思えますし、実装する方法はわかりません。助言がありますか ?スレッド間の通信のためのPythonデータ永続オブジェクト
1
A
答えて
0
私は変数とオブジェクトを混ぜ合わせただけです。変数をあるモジュールで定義して別のモジュールにインポートすることはできません(a = foo、次に別のモジュールからaを変更し、3番目のモジュールからaをインポートすることはできません)。これは、リストや辞書などで可能です。 解決方法:各ボットの起動時に(指定されたサーバーへの接続を試みると)、ニックネーム(これはIRC上で一意でなければならない)でキューが作成され、このサーバーに割り当てられます。各ボットにはデーモン・リスナーがあり、キューを読み取ります。他のモジュールはdictをインポートします。特定のキューは、リスナーによって使用されるシグナルをそこに置きます。 システムは完全に機能します。いいぞ。私は1つの面で問題があります:各ボットは複数のDCC接続を持つことができ、各接続にデータを割り当て、それらを混ぜ合わせるのは難しいです。
関連する問題
- 1. 間のスレッド通信
- 2. スレッド間の通信?
- 3. スレッド間のシリアルポート通信
- 4. ArrayListのスレッド間通信
- 5. Task.Factoryとスレッド間の通信
- 6. 通信間2つのスレッド
- 7. スレッド間のluaレーン通信
- 8. クラス間のスレッド間通信のためのC#のパイプに似たクラス
- 9. Swift 3でのスレッド間オブジェクト間通信ココア
- 10. オブジェクト間の通信
- 11. プロデューサ - コンシューマ間スレッド間通信
- 12. ASP.NETでのオブジェクトの永続性(ポストバック間)
- 13. Pythonでのオブジェクトの永続性
- 14. 2つのスレッド間の通信
- 15. リアルタイムオーディオ/グラフィックスのスレッド間のキューイング/イベント通信
- 16. ASP.NETのポストバック間でデータの永続化
- 17. PythonのスレッドとArduinoの通信
- 18. プロセス間通信のためのUDP
- 19. デバイス間通信のためのAndroid API
- 20. 非ネットワークプロセス間通信のためのPyro4
- 21. オブジェクト間の通信 - C4Framework
- 22. スレッド間での通信方法
- 23. スレッドの通信
- 24. PythonとWCF間の通信
- 25. Pythonプロセス間の通信
- 26. Pythonスクリプト間の通信
- 27. c#データベースの永続性のためのオブジェクトの等価性
- 28. の永続化データ
- 29. Swiftの永続データ
- 30. 低遅延スレッド通信のためのWindowsスリープマイクロ秒
ボットごとにキューを使用することを考えましたか? –
どのようにデータをすべてのキューに入れるのですか?または1つの特定のキューに? – mrj
すべてのキューのリストを持っているので、それぞれのキューに簡単に項目を追加できます。 –