Example #1
0
        private static void RescheduleIfAppropriate(
            ScheduledCommand storedCommand,
            ScheduledCommandResult result,
            CommandSchedulerDbContext db)
        {
            var failure = (CommandFailed)result;

            var now = Domain.Clock.Now();

            if (failure.IsCanceled || failure.RetryAfter == null)
            {
                // no further retries
                storedCommand.FinalAttemptTime = now;
            }
            else
            {
                storedCommand.DueTime = now + failure.RetryAfter;
            }

            db.Errors.Add(new CommandExecutionError
            {
                ScheduledCommand = storedCommand,
                Error            = result.IfTypeIs <CommandFailed>()
                                   .Then(f => f.Exception.ToJson())
                                   .ElseDefault()
            });
        }
 internal void Add(ScheduledCommandResult result)
 {
     results.Add(result);
 }
 internal void Add(ScheduledCommandResult result) => results.Add(result);