問題タブ [message-handlers]
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.
erlang - Erlang の receive ステートメントを理解するには?
私はErlangを初めて使用するので、お手柔らかにお願いします。
たとえば、erlang で receive ステートメントがどのように実行されるかについて、私は混乱しています。
MessageA が受信され、handlerA が実行された場合、しばらくして MessageB がプロセスの受信ボックスに受信された場合、handlerB は実行されますか?
receive ステートメントを再実行するために再帰するコードがたくさんあるので、そうではないと思います。
しかし、messageA のハンドラーに次のような別の receive ステートメントが含まれている場合、ここに問題があります。
この場合、MessageA のハンドラに入ると、MessageB を扱えないということでしょうか?
どうすればこれを解決できますか?MessageB のハンドラを loop2 に入れて?特に複数のレベルの receive ステートメントがある場合、これはあまり優雅に見えません。
これを行うより良い方法はありますか?
maven - カスタム メッセージ ハンドラー チュートリアルでデモを試行中に JIRA エラーが発生する
カスタム メッセージ ハンドラを作成するためのチュートリアルを行っていました。チュートリアルのリンク
「atlas-run」コマンドを実行しようとすると、ビルド失敗メッセージが常にこのエラー コードとともに表示されます。
プロジェクト mail-handler-demo で目標を実行できませんでした: プロジェクト com.example.plugins.tutorial.jira:mail-handler-demo:atlassian-plugin:1.0.0-SNAPSHOT の依存関係を解決できませんでした: com.atlassian が見つかりませんhttps://maven.atlassian.com/repository/publicの .jira:jira-mail-plugin:jar:7.0.0-1 が ローカル リポジトリにキャッシュされました。解決は atlassian-public の更新間隔まで再試行されません。が経過したか、更新が強制されました -> [ヘルプ 1]
「com.atlassian.jira:jira-mail-plugin:jar:7.0.0-1」ファイルは変更または更新されていますか? または、このエラーを引き起こす他の理由がありますか? 助けてくれてありがとう。
multithreading - NServiceBus ハンドラーは常に迅速に完了する必要がありますか?
[わかりやすくするために編集]
正しく理解しているかどうかわかりません。
これらの有益な投稿によると、佐賀の内部ではすべてが簡潔かつ迅速でなければなりません。
- ジョナサン・オリバーのまとめ: blog.jonathanoliver.com/…
- ウディ・ダハンのオリジナル:skillsmatter.com/skillscasts/…
- そしていくつかの以前の投稿
- lostechies.com/jimmybogard/2013/03/26/scaling-nservicebus-sagas
- docs.particular.net/nservicebus/アーキテクチャ/原則
つまり、サガにはビジネス ロジックがなく、内部に if-else 命令があってはなりません。それは単なるオーケストレーターであるべきであり、それを呼び出すことは「成功志向」であるように計画する必要があります。つまり、Saga を呼び出す前に、可能な限り多くの検証を行う必要があります。
しかし、個別のハンドラー (「独立したハンドラー」と呼んでいますか?)、つまり、サガ内にないハンドラーについてはどうでしょうか? 次のうち、正しいものはどれですか。
を。サガ外の NServiceBus メッセージ ハンドラーは常に迅速に完了し、時間のかかるアクションがある場合はそれをスレッドに渡して完了する必要がありますか?
b. または、ハンドラーを「独り占め」したほうがよいのでしょうか。そうすれば、NServiceBus はこのメッセージが高い料金で使用されていることを「認識」し、それに応じてアクションを実行できます。つまり、自動負荷分散を使用して、処理プロセスの別のインスタンスを作成します別のプロセスまたは別のマシンですか?
正しい方法は何ですか?
また、メソッドを呼び出して、回答とともにサンプル コードを提供できますかFoo.DoTimeConsumingBar()
。
ありがとうございました。
c# - NServicebus Generic MessageHandler が呼び出されない
現在、バックエンドで NServiceBus を使用してイベントを発行するサンプル プロジェクトを開発しています。バックエンドは、一連のハンドラーを介して独自のイベントを処理することになっています。次のように、イベントごとに 1 つの特定のハンドラーを実装すると、これは正常に機能します。
ただし、これらのハンドラーはイベントを別のプロセッサにディスパッチするだけなので、少しクリーンアップして、単一の汎用メッセージ ハンドラーのみを実装したいと考えました。
残念ながら、ジェネリック ハンドラーは、別の特定のハンドラーがプロジェクトに存在するメッセージ タイプに対してのみ呼び出されます。つまり、ソースに MyEventHandler を残すと、GenericHandler は MyEvent イベントを正しく受信しますが、この (現在は廃止された) ハンドラーを削除すると、このメッセージの受信を停止します。実際、私の目標は、プロジェクトからすべての特定のハンドラーを削除し、単一の GenericHandler でのみ動作することです。構成の基本的な手順が欠けていますか?
NServiceBus-config は次のようになります。
さらに:
- 上記の API アセンブリには、公開して処理する必要があるすべてのイベントが含まれています。
- すべてのメッセージに、NServiceBusの
ICommand
およびマーカー インターフェイスを使用してマークを付けました。IEvent
- NServiceBus V5 (コア) を NServiceBus.Host V6 と組み合わせて使用します。
EndpointConfig に次のカスタム バス構成があります。
/li>
java - Java WebSocket: マルチ テキスト/データ MessageHandler
こんにちは。私の WebSocket アプリケーションでは、WS サーバーは、DataPkg、SigPkg、および WS_SigPkg の 3 種類のメッセージを処理する必要があります。DataPkg は、コントローラー ヘッダーを含むユーザー データのバイナリです。SigPkg は WS クライアント間のユーザー データ制御用の String であり、WS_SigPkg も WS サーバーへの登録や異なる WS セッション間の DataPkg と SigPkg の切り替えなどの String です。
そこで、6 つのエンコーダー/デコーダーを配置しました。
次に、次のエラーが発生しました。
GlashFish Server 4.1.1 は、文字列メッセージに 2 つの MessageHandler を追加できないようですが、上位層ではそれらは異なり、デコーダーはそれを見つけることができます。
ここに誤解がありますか、簡単な回避策がありますか、または文字列とバイナリに1つの MessageHandler のみを使用するようにリファクタリングする必要がありますか? ありがとう。
c# - C# Web API、応答がクライアントに返された後のログ要求
最近、Web サーバーがすべての要求/応答データを HTTP 経由でログ サーバーに送信するアプリケーション用のログ ソリューションを作成しました。委任ハンドラーを使用してこれを行いました
http://www.asp.net/web-api/overview/advanced/http-message-handlers
これは非常にうまく機能していますが、クライアントに送り返す前にメッセージをログに記録する必要がない方法でこれを行う方法があるかどうかに興味がありました. メッセージをログに記録することは、エンド ユーザーにとって何の価値もありません。そのため、データを取得する前に、ログ ロジックが終了するのを待つ必要がないようにしたいと考えています。
私が探しているのは、メッセージがクライアントに返された後、スレッドが消える前に呼び出され、リクエストとレスポンスにアクセスできるフックのようなものだと思います。
求めすぎですか?
ありがとう!
scip - SCIP 3.2.0 はメッセージ ハンドラーを置き換えません
SCIP callable がすべてのメッセージを stderr に出力するようにします (flatzinc ソルバーとして使用します)。私はもう試した
効果なし...
log4net - OWIN ミドルウェアまたは委任 MessgaeHandler を使用して、API 要求/応答をログに記録しますか?
古い非 OWIN API では、MessageHanlder を使用してすべての HttpRequests と HttpResponses をログに記録します。MessageHandler は次のとおりです。
ただし、私の新しいプロジェクトでは、カスタム OWIN ミドルウェアを作成して、次のように OwinContext を使用して同様のことを行うことができます。
log4net を使用して情報を SQL2012 データベースに書き込みます。どちらの方法でも私の目標を達成できます。ただし、ある方法を他の方法よりも使用する理由を探しています。カスタム OWIN ミドルウェアまたは MessageHandler を使用する必要がありますか? その理由は? 前もって感謝します。
iis-7 - Web API 2 応答が常に送信されるわけではありませんか?
次のようなメッセージ ハンドラーで、すべての要求/応答パケットのログ記録を実装しました。
毎日 (数千のうち) 約 10 ~ 20 の API 応答がログに記録されていないようです。これらの API を呼び出しているモバイル デバイスがあり、リクエストを行った可能性があると考え、その後ネットワーク接続を失います。この場合、レスポンスは送信されず、ログにも記録されません。
ただし、postman でテストすると、ログ実行リクエストを実行し、途中でキャンセル ボタンを押すと、実際に応答が最終的にログに書き込まれることがわかります。次のリクエストがあったときに書かれているようです。
Web API 2.0 が要求を受け取った場合、常に応答を発行しますか? クライアントが中止されたかどうかは重要ですか? クライアントがネットワークへの接続を失った場合は問題になりますか?
エラーをトラップするために、log4net とグローバルな例外ロガーを使用しています。ただし、応答を「失った」前後のすべてのログを見ると、ログに記録された例外はありません。グローバルロガーは次のとおりです。
起動時にハンドラーとロガーを登録する方法を次に示します。
私もこれをテストするのに苦労しています。どんな提案も大歓迎です。