コード例 #1
0
 // 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.");
     }
 }
コード例 #2
0
ファイル: Publisher.cs プロジェクト: lsfera/Tesseract
        // 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.");
            }
        }