問題タブ [reactor]
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.
orm - ColdFusionのReactorでテーブルイテレータを取得するにはどうすればよいですか?
私はReactorとColdFusionforORMを使用しており、テーブルXgetAll
のすべてのレコードを含むクエリを返すメソッドを提供するテーブルXのゲートウェイオブジェクトを取得する方法を知っていますが、代わりにオブジェクトイテレータが必要です。getRelatedIterator
関連するテーブルY、Zなどのデータの各レコードでsを使用します。
これを行う方法はありますか?
coldfusion - CF Reactor を使用してレコードの列名を取得するには?
レコード オブジェクトの列名のリスト/配列を取得したいと思います。メソッド名をループすることでこれを取得できると思いますが、よりクリーンなものがあることを望んでいましたか?
html - ColdFusion Reactor 用のフォーム作成ツール?
ColdFusion で Reactor を使用していますが、レコード オブジェクトから単純な html フォームを自動的に作成するツールがあるかどうか疑問に思っています。
java - 制限されたスレッドによる複数の実行パス
私は挑戦的な非同期プログラミングのタスクを抱えています.誰かがJavaでそのようなことをしたのだろうか. 次のように使用されるフレームワークを開発していると仮定しましょう。
- カスタム Java を実行する
- フレームワーク メソッドを呼び出す
- カスタム Java を実行する
- フレームワーク メソッドを呼び出す
上記のコードは、ユーザーの観点からは同期的です。ただし、フレームワーク メソッドは内部的に長い非同期操作を実行し、操作中にユーザー スレッドをブロックすることは効率的ではなく、実行可能ではありません。ステップ1〜4の数千の同時実行をサポートする必要がある可能性があるため、ユーザースレッドをブロックすることは現実的ではありません...つまり、X> YのYスレッドを使用してX個の同時Javaコード実行をサポートする方法を探しています。 .. Reactor パターンが IO で行っていることと多少似ていますが、より一般的です.. 何か考えはありますか?
.net - .NET Reactor による .NET アセンブリの保護
Visual Studio 2010 C# WPF を使用して開発されたソフトウェアを保護するために、Eziriz .NET Reactorをテストしています。
.NET Reactor がどのアセンブリを保護するかを尋ねると、私は混乱します。ユーザーがインストールする.msiファイルを保護するはずでしたが。しかし、.exe であるアセンブリ ファイルをアップロードするように求められます。そのため、Visual Studio でソリューションをビルドして生成された .exe を bin/Debug フォルダーにアップロードします。
.NET Reactor で保護を実行した後、.NET Reflector で同じ .exe ファイルを開くと、すべてのクラスとメソッドが表示されます。何も保護されていません。
ドキュメントを読みましたが、動作していないだけですか、それとも何か間違っているのでしょうか?
python - MsgWaitForMultipleObjectsを使用して、切断されたTCPソケットを確実に検出するにはどうすればよいですか?
Twistedには、上に実装されたリアクターMsgWaitForMultipleObjects
が含まれます。どうやら、少なくともピアがいくつかのバイトを送信してからすぐに接続を閉じる場合、reactorにはTCP接続がいつ終了するかを確実に通知する問題があります。何が起こっているようです:
- リアクタは
MsgWaitForMultipleObjects
、いくつかのソケットハンドルとを使用して呼び出しますQS_ALLINPUT
。 - 呼び出しが完了し、この状態のソケットのハンドルがアクティブであることを示します(つまり、バイトが読み取られるのを待機していて、ピアによって閉じられています)。
- リアクタは、この通知を一般的なTCP実装にディスパッチします。
- TCP実装は、ソケットから使用可能なバイトを読み取ります。いくつかあり、それらはアプリケーションコードに配信されます。
- 制御はリアクターに戻され、リアクターは最終的に
MsgWaitForMultipleObjects
再び呼び出します。 MsgWaitForMultipleObjects
ハンドルがアクティブであることを二度と示しません。TCP実装はソケットを再度確認することはないため、接続が閉じられたことを検出することはできません。
MsgWaitForMultipleObjects
これにより、エッジトリガー通知メカニズムのように見えます。MSDNのドキュメントには次のように書かれています。
これは、エッジトリガーのようには聞こえません。レベルトリガーのように聞こえます。
MsgWaitForMultipleObjects
実際にエッジトリガーされていますか?それとも、レベルによってトリガーされ、この不正な動作は、その動作の他の側面によって引き起こされますか?
補遺 WSAEventSelectのMSDNドキュメントでFD_CLOSE
は、基本的に1回限りのイベントであることを指摘するなど、ここで何が起こっているかについてもう少し説明しています。一度信号を送った後は、二度とそれを取得することはありません。これは、Twistedにこの問題がある理由を説明するのに役立ちます。MsgWaitForMultipleObjects
ただし、この制限を考慮して、効果的に使用する方法については、まだ興味があります。
sockets - ACEアクセプター-My_Svc_Handlerクラス
TCPポートをリッスンするためにaceアクセプターを使用しています。私のクラスはMy_Svc_Handlerから継承し、クラスMy_Svc_Handlerの関数int open(void *)を意味します。私が見たすべての例で、open関数内で、それらはリアクターを登録します。
なぜ登録する必要があるのか理解できません。私はすでにイベントを待っているリアクターを持っています。これは私がメインで定義したものです:
open関数がいつ呼び出されるのかわかりません。
その方法について別の質問があります。while(1)を実行しないメインに別の方法はありますか?
c++ - Poco SocketReactor でマルチスレッドを処理する良い方法は何ですか?
そのため、大規模なクライアント/サーバー システムを実装するための代替案についていくつかの調査を開始しています。現在、アプリケーション フレームワークの多くに Poco を使用しているため、Poco の Reactor フレームワークを検討しています。
着信パケットのサイズはかなり小さくなるので、クライアントからデータを読み取るという観点からは問題なく機能すると思います。ただし、クライアント入力に基づいて実行される操作は比較的コストがかかり、別のプロセスまたは別のサーバーにオフロードする必要がある場合があります。また、クライアントに返される応答は、かなり大きい場合があります。したがって、明らかに、それが行われている間、リアクター スレッドをブロックすることはできません。
したがって、リアクター イベント ハンドラーでデータを読み取ってから、データを処理する別のスレッド (プール) に渡すと、うまくいくと思います。
私がよくわからないのは、操作が完了したときにクライアントに応答を返すプロセスです。
フレームワークの最適な使用方法に関する情報があまり見つかりません。しかし、いくつかのテストを行ったところ、ソケットが書き込み可能である間、リアクターが WritableNotification イベントを繰り返し発生させるようです。最適なプロセスは、WritableNotification イベントを受信するオブジェクトで送信する必要があるデータをキューに入れ、イベントを受信するたびに小さなチャンクを送信することでしょうか?
更新: したがって、これをテストし始めたとき、サーバーの CPU 使用率が、サーバー アプリが単一の接続で実行されている CPU で 100% に達したことを発見してぞっとしました。しかし、掘り下げた後、私は自分が間違っていたことを発見しました。サービス ハンドラの作成時に WritableNotification イベントに登録する必要がないことを発見しました。登録する必要があるのは、送信するデータがある場合のみです。次に、すべてのデータが送信されたら、イベント ハンドラーの登録を解除する必要があります。このようにして、リアクターは、送信するものが何もないときに、イベント ハンドラーを何度も呼び出し続ける必要がありません。現在、100 接続でも CPU 使用率はほぼ 0 のままです。うわー!
python - 基本的な Twisted Reactor のセットアップ
Twisted を使用するのは初めてです。.py でプロトコルを設定しましたが、完全に機能します。問題は、現在それをテストするために、サーバーに ssh して実行する必要があるということです。サービス/サーバーとして実行したいので、常にプロトコルを提供しています。ねじれたサイトで .tac ファイルについて何か読んだことがありますが、それを私が書いたプロトコル ファイルと結び付ける方法がわかりません。
私が持っているのは、reactor にメッセージを送信し、メッセージを受信する単純なソケット ベースの iPhone アプリだけです。
サーバーの起動時にこれを起動したいと思います。Apacheサーバーが機能するのと同じように。
ご協力いただきありがとうございます。
ace - ace でリアクター イベント ループを終了する方法
ace でリアクタ イベント ループを終了する 2 つの方法を見つけました。
それらの違いは何ですか?どちらを使用する必要がありますか?