メッセージバスと考えられるいくつかのコードに取り組んでいます。タスクをいじり始めるまで、すべてがうまく機能していました。
私の特定の実装では、私は Web コンテキストにいるHttpContext.Current.Items
ため、リクエストの最後にメッセージを取得するまで、リクエストの存続期間全体にわたってメッセージを保存するために、ピギーバックオフを行っています。想像できるように、非同期タスクの使用を開始すると、他のスレッドで操作が発生し、私が持っているものが壊れます。
これが発生する理由は理解していますが、すべてのタスクにメッセージ バスを渡す必要のない解決策を見つけたいと考えています。
を使用しないように実装を変更してもかまいませんHttpContext.Current.Items
が、セマンティクスは同じように機能するはずです。具体的には、リクエストの存続期間中存続するストアがあり、メインのリクエスト スレッドから生成されたスレッドがアクセスできることです。
どうすればこれを行うことができるかについて誰にもアイデアがありますか?
余談ですが、リクエストがログ実行タスクを生成し、タスクが終了する前にリクエストが返された場合、そのタスクがストアを見つけようとすると、ストアが null または例外をスローすることをイメージします。