4
NserviceBusを使用して、sagaでタイムアウト管理をテストするためのサンプルアプリケーションを開発していました。NServiceBus TimeOut Manager
サガは、タイムアウトは更新がnessageに来たならば私のコードは
以下のようなものです 5分にタイムアウトを更新起こる前に、それは1分 にタイムアウトだし始めたとき、私は、次のを達成するためにトラインよ
public class OrderSaga : Saga<OrderSagaData>,
IAmStartedByMessages<SampleMessage>,
IHandleMessages<UpdateMessage>
{
public override void ConfigureHowToFindSaga()
{
ConfigureMapping<UpdateMessage>(s => s.PurchaseOrderNumber, m => m.Update);
}
public void Handle(SampleMessage message)
{
this.Data.PurchaseOrderNumber = message.Name;
RequestTimeout(DateTime.Now.AddMinutes(1), message.Name);
}
private void Complete()
{
MarkAsComplete();
}
public override void Timeout(object state)
{
Complete();
}
#region IMessageHandler<UpdateMessage> Members
public void Handle(UpdateMessage message)
{
this.Data.PurchaseOrderNumber = message.NewValue;
RequestTimeout(DateTime.Now.AddMinutes(5), message.Update);
}
#endregion
}
}
しかし、ここでの問題は、タイムアウトが5分に更新されていないことです。タイムアウトは1分間有効です。
ここで間違っていることを教えてください。事前に
おかげで、 Ajai
こんにちはアンドレアス、速い返信ありがとうございました。私はMarkCompleteにbeacauseを与えました。私は5分後にサガが完了することを期待しています。私ができることから2回以上値を更新すれば、更新レベルがnレベルになるようにしてください。それでは、サガ・データベースの更新回数をこのようにしておくのが良いでしょうか? – Ajai
あなたのサガはいつ終わるはずですか? 5分後?あなたはアップデートを受け取った後に? n更新後? –
私の答えが更新されました。 –