ここでの問題は要求/応答です。
これは次のように機能します:
- MTは、リクエストIDをsaga状態プロパティ
UrlRequestId
に配置します - リクエストが送信されます
- 応答が返されます。応答には、ヘッダーにリクエスターアドレスとリクエストIDが含まれています
- MTはsagaリポジトリを使用して検索します
repo.Find(x => x.UrlRequestId == message.Headers.RequestId)
を使用するインスタンス (したがって、これは実際のコードではありませんが、これが発生します) - Redis(またはその他のKVS)はクエリをサポートしていないため、Sagaリポジトリでもクエリをサポートしておらず、「実装されていない」例外が発生します
Request
以降、応答の相関仕様は効果がありません 常にヘッダーを使用して、応答が属するsagaインスタンスを検索します。
これを回避するには、request-responseを使用せず、代わりにcontext.Publish(new LinkCreatedEvent { ... , CorrelationId = context.Message.CorrelationId })
を使用してイベントを発行します。 通常の相関関係を使用します。