問題タブ [event-driven-design]

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.

0 投票する
1 に答える
4949 参照

c++ - イベント ドリブン プログラミング - イベント ループ?

プラットフォーム固有のコードにバインドされたイベント ループの実装はありますか?

イベント ループとは、キューをチェックし、メッセージを処理し、コールバックに適切にディスパッチする単純なスレッドを指しています。

例を使用せずにどのように記述できるかがわからないためです。

-セマフォ/ミューテックス/イベント オブジェクト/Sleep() [windows]。

もちろん、上記はすべてのオペレーティングシステムで同じというわけではありません。

ちなみにこれはC/C++用です。

0 投票する
1 に答える
1510 参照

php - イベント ドリブン アーキテクチャにおける例外処理と状態制御

イベント ドリブン アーキテクチャ (EDA) の設計パターンについてよく読んでいますが、非常に強力に見えますが (あえて美しいと思いましたか?)、次の 2 つの点について混乱しています。 、例外を制御する方法。

Ajax を使用するために公開されたコールバックを設計したいとしましょう。コールバックは、「ユーザー名」と「パスワード」を使用してフロントエンドによって起動され、成功または失敗を示すローカライズされた「リターン コード」を返します。

ユーザーが正常にログインしたら、ログインして管理と電子メールを送信し、セッションを開始するとします。EDA ベースのパターンを使用していた場合、次のようになります。

ユーザー ログイン -> (常にイベントをディスパッチ) -> (ログ、電子メールの送信、セッションの開始がすべて呼び出される)

つまり、ログイン コールバックは、その特定のイベントをリッスンするすべての登録済みクラスを発行する何らかの通知をディスパッチします。私の問題は、オーセンティケーターのペア (ユーザー名、パスワード) が成功したかどうかを誰が確認しているのかということです。ある意味では、これら 3 つのイベントは、認証が正しかった場合にのみ有効です。

したがって、おそらく最初に 1 つのイベントを起動し、成功した場合にのみ他のイベントを起動します。

ユーザーのログイン -> (常にイベントをディスパッチします) -> ユーザーのログインを試みます (成功した場合はイベントをディスパッチします) -> (ログ、電子メールの送信、セッションの開始がすべて呼び出されます)

それが機能している間、私はフィードバックを得る方法を制御できなくなりました. イベントは、「設定して忘れる」一連の思考に従っているように見えます。フロントエンドにコードを返すにはどうすればよいですか? つまり、イベントオブザーバーがサブジェクトにフィードバックを与える方法がわかりません。

これは例外処理に続きます。このシナリオで例外を処理する最善の方法は?

アドバイスをいただければ幸いです。エイドリアン

(おそらく理論的な意味では問題ではありませんが、私はこれを PHP に適用しようとしています)

0 投票する
1 に答える
93 参照

c# - 課題のために C# イベント パズル ゲームを作成しようとしています

ピクチャーボックスを動かしました。しかし、画像ボックスをクリックすると、あちこちにジャンプします。誰でもこれで私を助けることができますか?

0 投票する
0 に答える
173 参照

php - Sync コードを Async PHP にラップする

SoapClient を使用して Web サービスに接続する長時間実行をブロックするプロセスがあるとします。通常のコードを非同期の方法でラップすることは可能ですか。異なるライブラリを使用して並列の Soap リクエストを送信できることはわかっています。ブロッキングプロセスを非同期の方法でラップすることは可能かどうか知っていますか?

通常モードでは、ブロッキング要求が送信され、応答を待ちます。

私の必要性では、複数の処理が単一のプロセスで行うジョブのように、複数のブロッキング要求が一度に送信されます。

0 投票する
1 に答える
71 参照

java - apache camel で非同期イベントを消費する際のエラーのデバッグ

アプリケーションで apache camel を使用しています。私はcamelContext producerTemplateメッセージを送信するために使用します:

コンシューマーは次のようになります。

これは私の開発環境では問題なく動作します。しかし、プロダクションでは、プロデューサーがメッセージを送信しても、コントロールがコンシューマーに届くことはまったくありません。ログにもエラーは表示されません。これをデバッグする方法はありますか? 開発環境と本番環境の唯一の違いは、インターネット経由でサービスと通信するためにプロキシを設定していることです。

0 投票する
0 に答える
813 参照

java - Spring MVC アプリケーションでのイベント駆動型を理解する

このSpring MVCアプリケーションからコードを読みました:

https://github.com/spring-guides/tut-rest/tree/master/6/complete/src/main/java/com/yummynoodlebar/core/events

イベントフォルダーからのこれらのクラスの役割がわかりません。アプリケーションの別の場所でそのようなイベントをキャッチするにはどうすればよいですか?

このアプリケーションで私が理解できないもう 1 つのことは、サービス レイヤーのどこかでコマンドとクエリの分離を使用しない理由です。彼らは残りのコントローラーで CQS を使用しました。私はそれに同意しません。代わりに、サービス層で CQS を使用して、検証やその他のコア操作をサービスに追加する簡単な方法を提供する必要があります。このリンクは、サービス層での CQS 分離について私が話していることを説明しています。

上記のリンクで説明されている CQS パターンを実装する方法について提案がある場合は、それを教えてください。

0 投票する
1 に答える
178 参照

java - Javafx - AI またはそれぞれのオブジェクトを制御するための静的クラスを作成する必要がありますか?

私はポーカー ゲーム (Texas Hold Em) を作成していますが、簡単にするためにすべての AI を制御する静的クラスを作成する必要があるのか​​、それともそれ自体をインスタンスにして各プレイヤーが異なるアルゴリズムを使用できるようにすることを目指しているのか疑問に思っています。 ? つまり、ポーカーなので、戦略にはかなりの範囲があると思いますが、決定の統計比率をランダムに選択する静的クラスを作成することもできます...完全に予測可能な退屈な AI は必要ありません

現在、カードを文字列として表すオブジェクトがあり、カード文字列の配列から文字列が渡されると、それに相当する ImageView が返されます。次に、現在できることとできないことを指示するルールのオブジェクトがあります。コミュニティ カードを分析して最高のハンドを探し、プレーヤーが持っているハンドのタイプを返し、2 人のプレーヤーが似たようなハンドを持っていてどちらが勝つかを判断する必要がある場合に備えて、そのハンドを構成するカードを一時的に保存します。次に、プレイヤーがコールまたはフォールドをチェックしたかどうかを基本的に設定するプレイヤー クラスがあります。

編集: また、3x についてカードが配られる方法を書き直しました。私は基本的に、さまざまなポーカー スタイルを後で追加できるようにゲームを設計しようとしています。

0 投票する
1 に答える
1632 参照

.net - MassTransit: メッセージ コントラクト、ポリモーフィズム、動的プロキシ オブジェクト

TL;DR コントラクト サブスクリプションでは、動的プロキシではなく、生のメッセージ コンテンツまたは元の公開オブジェクトを取得するにはどうすればよいですか?

MassTransit に基づいてモジュラー アプリケーションを作成しようとして、うまくいきません。

私の考えは、Websocket サーバーをキューに接続し、ソケットからイベントを読み取り、「接続要求」としてキューに挿入し、キューからイベントを読み取り、「接続イベント」としてソケットに送信することです。両方とも、WS サーバーがイベントの送信先の接続と、システムの残りの部分の送信元を認識できるようにするコントラクトがあります。

セッションやその他のデータを維持するオブジェクトがあります。このオブジェクトは、リクエスト (アクション リクエストやサブスクリプション リクエストなど) を受け入れ、リクエストの結果として、または単に状態が変化したためにイベントをプッシュします。特定のイベントまたは一連のイベントをリッスンし、状態に対してアクションを実行するオブジェクトを作成したいので、次のコントラクトを作成しました。

たとえば、サーバーで実際のセッションを作成し、セッションの準備ができたときに通知する接続に応答するハンドラーを作成したいと考えています。リクエストを表すオブジェクトを作成し、その他のイベントとハンドラー自体を作成します。

ここで、テスト目的で、シナリオをエミュレートする次のコードを作成します。基本的に、通信バスを作成し、リクエスト ハンドラをサブスクライブします。

次に、Websocket サーバーをシミュレートして、WS から読み取ってキューに送信する部分を作成します。

そして、キューからイベントを受信し、適切な接続に転送することになっている部分:

しかし、この最後の部分は期待どおりに機能しません。サブスクリプションで取得したオブジェクトは元のイベントではなく、動的なプロキシDynamicImpl.IConnectionEventであるため、のメンバーのみが含まれるため、このオブジェクトを JSON でシリアル化できませんIConnectionEvent

サブスクリプションでタイプを指定すると、次のように機能します。

しかし、新しいイベントごとに、Websocket サーバーにアクセスしてその新しいタイプを登録する必要があることを意味します。

これを回避する方法はありますか?