public async Task RetryAsync(EmailMessage emailMessage) { emailMessage.RetryCount++; var delay = backoffStrategy.GetDelay(emailMessage.RetryCount); // see https://github.com/EasyNetQ/EasyNetQ/wiki/Support-for-Delayed-Messages-Plugin await bus.FuturePublishAsync(DateTime.UtcNow.Add(delay), emailMessage); logger.LogError($"Delaying {emailMessage.Id} for {delay}"); }