5

メッセージ処理パイプラインにフックして、消費者がメッセージの処理を終了した後に何らかの作業を行う方法を探しています。私の意図は、新しいセッションを開いてトランザクションを開始することです(IoCコンテナで実行できます)。その後、それらを処理してすぐに破棄します。

NServiceBus では、IMessageModule インターフェイスを使用してフックします。それに似たものはありますか? 実際にはハンドラーを破棄することもできますが、私は StructureMap を ObjectBuilder として使用しているため、Release メソッドは何もしません。

4

2 に答える 2

12

各メッセージが消費される前後に呼び出されるインターセプターを登録できます。例として:

        LocalBus = ServiceBusConfigurator.New(x =>
            {
                x.ReceiveFrom("loopback://localhost/mt_client");

                x.BeforeConsumingMessage(() => { _before.Set(); });
                x.AfterConsumingMessage(() => { _after.Set(); });
            });

作業中の単体テストについては、MassTransit.Tests プロジェクトの MessageInterceptor_Specs.cs ファイルを見てください。

于 2011-04-06T19:39:18.460 に答える