[英]How to declare a scheduled event with delay informed dynamically on MassTransit?
在 Sample-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”延遲的計划事件,例如
有沒有辦法在狀態機構造函數類上使用“Schedule”聲明來做到這一點?
狀態機中使用的Schedule
擴展得到了增強,以增加對動態延遲的支持。 例如,您可以執行以下操作:
When(ApproveOrder)
.Then(context => context.Instance.EstimatedTime = context.Data.EstimatedTime)
.Schedule(CartExpired, context => context.Instance.EstimatedTime)
這將使用第二個參數的延遲,而不是創建計划時指定的延遲。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.