問題タブ [twisted.internet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - ツイスト未処理エラー
ツイストリアクターが実行中で、キャッチされない遅延内で例外が発生すると、「未処理エラー」がトレースバックと例外とともに端末に出力されます。これらの例外を処理/インターセプトすることは可能ですか(たとえば、コールバックを設定するか、メソッドをオーバーライドします)?
編集:deferrerdにerrbackを追加することで、失敗をキャッチできることを認識しています。私が知りたいのは、チェーンを上って原子炉に到達した未処理の障害/例外をインターセプトする方法があるかどうかです。
編集:基本的に、ツイストリアクターにグローバルエラーハンドラーまたはアクセス可能なものがあるかどうか疑問に思っています。失敗からのトレースバックとエラーを出力するので疑問に思います。
例:
twisted - 既存のツイストサービスを別のSocket/TCP / RPCサービスで拡張して、サービス情報を取得します
この例に基づいて、ツイストベースのハートビートクライアント/サーバーコンボを実装しています。それは私の最初のツイストプロジェクトです。
基本的には、パッケージの受信時にReceiver
リスナーメソッド()を呼び出すUDPリスナー( )で構成されます。DetectorService.update
DetectorServiceは、現在アクティブ/非アクティブなクライアントのリストを常に保持し(例を大幅に拡張しましたが、コアは同じです)、指定されたタイムアウトで切断されたように見えるクライアントに対応できるようにします。
これは、サイトから取得したソースです。
このハートビートサーバーは、バックグラウンドでデーモンとして実行されます。
今私の問題:
スクリプトを「外部」で実行して、レシーバーが存続期間中に収集するオフライン/オンラインクライアントの数をコンソールに出力できるようにする必要があります(self.beats
)。このような:
したがって、ある種の追加サーバー(Socket、Tcp、RPC-関係ありません。主なポイントは、上記の動作でクライアントスクリプトを作成できることです)をDetectorServiceに追加する必要があります。これにより、次のことが可能になります。外部から接続します。リクエストに応答するだけです。
このサーバーは、実行中のdetectorserviceインスタンスの内部変数にアクセスできる必要があるため、DetectorServiceを何らかの追加サービスで拡張する必要があると思います。
検出器サービスを他のいくつかのサービスと組み合わせようとして数時間経っても、その動作を実現するための最良の方法がまだわかりません。ですから、誰かが私に少なくともこの問題を解決し始めるための本質的なヒントを与えてくれることを願っています。前もって感謝します!!!
python - ツイスト非同期リクエスト処理
Node.js のように Twisted で非同期リクエスト処理を行うにはどうすればよいですか?
Twisted でサンプルを書きましたが、アプリは長い操作の応答を待っていました (これを time.sleep でエミュレートしています)。
また、reactor.callLater を正しく使用する方法がわかりません。
これは私のねじれたアプリのサンプルです。
編集: 質問は、同期コードの書き方です。例をください。
python - ツイスト ノンブロッキング メソッド - どのように?
私のコードは次のようになります。
出力:
1
わかった
ここまでは順調ですが、HTTP 応答 ('done' を返す) は遅延 (time.sleep(2)) 後にのみ発生します。ブラウザが 2 秒間「読み込み」を続けるため、これがわかります。
私は何を間違っていますか?
python - Twisted TCP ソケットの作成とテスト値の送信
TCP/IP プロトコルでソケットをセットアップしています。レシーバーが処理int8u_t
しているため、このアプローチが正しいかどうかを知りたいです。
接続時に、サーバーはmode=int(42)
レシーバーに値を送信する必要があります。これは で行われdef connectionMade(self)
ます。しかし、Python の通常の int は 32 ビットで、私の受信機は 8 ビットしかないため、競合が発生することは理解しています。どうにかして int8u でキャストまたは作成できますか?
python - SSLハンドラーに証明書を渡すツイスト
私はsslでtwistedを使用しているsslサーバーを設計しており、プログラムを続行するにはクライアント証明書認証が必要です。クライアントのssl証明書を確認するとTrueが返されますが、commannameとemailaddressを渡したいですハンドラークラスで特定のクライアントの設定を取得できるように、クライアント証明書を教えてください。
twisted.internet - ... twisted/internet/epollreactor.py"、238 行目、_add 内
サーバープログラムがしばらく実行された後、多数のエラー(エラー)が発生し、サーバーはクライアント接続のみを受け入れることができますが、データを受け入れず、最終的にアニメーションを一時停止します。次のエラー:</p>
python - Twisted Matrix、カスタム クラスをイベント ループにフック
複数のポートでメッセージを受信するねじれたアプリケーションを構築しようとしています。ポートはAlert
、とりわけtag
プロパティとプロパティを持つオブジェクトを生成する必要がありtrigger
ます。次に、アプリは、AlertJob
そのタグを持つ が既に存在するかどうかを確認する必要があります。ある場合は、それをエンキューする必要Alert
がAlertJob
あり、そうでない場合は最初に新しい を作成する必要がありますAlertJob
。のAlertJob
…の仕事は、トリガーを定期的にチェックし、トリガー条件が満たされた場合、メインアプリに再度通知することです。そして、ここに私の質問があります:
カスタム クラス ( AlertJob
) を twisted のリアクターにフックして、実行中のジョブのトリガー条件が満たされているかどうかを継続的に確認するにはどうすればよいですか?
python - Python / ツイスト マトリックスと SOAP スレッド
メッセージを送信するためにSOAPクライアントのメソッドを使用するPython / Twisted Matrixで構築されたアプリケーションがあります。問題は、多くのメッセージを送信したい場合があり、その場合は複数のスレッドで送信したいということです。たとえば、100 個のメッセージを送信する必要がある場合、これを 20 個のメッセージのグループに分割し、メッセージを並行して送信するために 5 つのスレッドを作成します。
何を探すべきですか?何か案は ?また、スレッドが収集したデータを報告できるようにしたいと思います
PSは、おそらくSOAPクライアントでの作業は、待機の問題であるという事実を考慮して...スレッド化はこれを解決するための最良のアプローチではないと思いますか? SOAP クライアントのコールバックを使用して、ある種の送信者の「プール」を作成し、送信者が解放されたらすぐに新しいものを送信するようにすることはできますか? アイデア?