// Super simple version to bake in requeueing of all failed to publish messages. private async ValueTask ProcessReceiptAsync(PublishReceipt receipt) { if (receipt.IsError && receipt.OriginalLetter != null) { _logger.LogWarning($"Failed publish for letter ({receipt.OriginalLetter.LetterId}). Retrying with AutoPublishing..."); await QueueLetterAsync(receipt.OriginalLetter); } else if (receipt.IsError) { _logger.LogError($"Failed publish for letter ({receipt.OriginalLetter.LetterId}). Unable to retry as the original letter was not received."); } }
// Super simple version to bake in requeueing of all failed to publish messages. private async ValueTask ProcessReceiptAsync(PublishReceipt receipt) { if (receipt.IsError && receipt.OriginalLetter != null && AutoPublisherStarted) { _logger.LogWarning($"Failed publish for letter ({receipt.OriginalLetter.LetterId}). Retrying with AutoPublishing..."); try { await QueueLetterAsync(receipt.OriginalLetter); } catch (Exception ex) /* No-op */ { _logger.LogDebug("Error ({0}) occurred on retry, most likely because retry during shutdown.", ex.Message); } } else if (receipt.IsError) { _logger.LogError($"Failed publish for letter ({receipt.OriginalLetter.LetterId}). Unable to retry as the original letter was not received."); } }