public async Task Handle(ProcessPurchaseOrder message, IMessageHandlerContext context) { _logger.Info($"{message.Id} stated."); ushort minutes; var setting = Configuration.Root["SagaRequestTimeoutMinutes"]; if (!ushort.TryParse(setting, out minutes)) { minutes = 2; } var policy = new IntegrationWarningPolicy { Id = message.Id, TimeoutMinutes = minutes }; await RequestTimeout(context, TimeSpan.FromMinutes(policy.TimeoutMinutes), policy); var command = new ArchiveData { Id = message.Id, Orders = message.Orders }; await context.Send(command); }
public Task Timeout(IntegrationWarningPolicy state, IMessageHandlerContext context) { _logger.InfoFormat(ErrorMessage.SagaTimeoutMessage, state.Id, state.TimeoutMinutes); MarkAsComplete(); return(Task.CompletedTask); }