2016-04-28 13 views
1

イベントをスケジュールするには、このような設定があります:MassTransitで遅延を通知されたスケジュールされたイベントを動的に通知するにはどうすればいいですか?サンプル・ShoppingWebのShoppingCartStateMachineで

Schedule(() => CartExpired, x => x.ExpirationId, x => 
      { 
       x.Delay = TimeSpan.FromSeconds(10); 
       x.Received = e => e.CorrelateById(context => context.Message.CartId); 
      }); 

注「x.Delay」プロパティこと、それは、コンストラクタで設定されていますが、私の場合には、私はそれをお知らせしたいと思いディミナルに時間遅延する。

When(ApproveOrder) 
       .Then(context => 
       { 
        context.Instance.EstimatedTime = context.Data.EstimatedTime; 
        context.Instance.Status = context.Data.Status; 
       }) 

...とは、例えば "context.Data.EstimatedTime" 遅延でスケジュールイベントを設定します

ステートマシンのコンストラクタクラスで "スケジュール"宣言を使用する方法がありますか?

答えて

1

ステートマシン内で使用されるSchedule拡張が拡張され、動的遅延のサポートが追加されました。たとえば、次の操作を行うことができます。

When(ApproveOrder) 
    .Then(context => context.Instance.EstimatedTime = context.Data.EstimatedTime) 
    .Schedule(CartExpired, context => context.Instance.EstimatedTime) 

これは、第二引数からの遅延の代わりに、スケジュールの作成時に指定したものを使用します。

関連する問題