#pragma warning disable IDE0060 // Remove unused parameter public static async Task ClearDeadLetterServiceBusQueue([TimerTrigger("* 0 * * 1", RunOnStartup = true)] TimerInfo myTimer, ILogger log) { #pragma warning restore IDE0060 // Remove unused parameter var deadLetterQueueName = $@"{Environment.GetEnvironmentVariable("ServiceBusQueueName")}/$DeadLetterQueue"; await using var client = new Azure.Messaging.ServiceBus.ServiceBusClient(Environment.GetEnvironmentVariable(@"ServiceBusConnection")); client.ConfigureAwait(false); await using var processor = client.CreateProcessor(deadLetterQueueName, new Azure.Messaging.ServiceBus.ServiceBusProcessorOptions { AutoCompleteMessages = true }); processor.ProcessMessageAsync += a => { try { // swallow because the MessageHandlerOptions will autocomplete the msg for us log.LogInformation($@"Cleared message {a.Message.MessageId} from Dead Letter queue. Content: {Encoding.Default.GetString(a.Message.Body)}"); } catch (Exception completeEx) { // log, but don't worry about, errors log.LogError(completeEx, $@"Encountered an error completing msg in dead letter queue"); } return Task.CompletedTask; }; processor.ProcessErrorAsync += a => { log.LogError(a.Exception, $@"Encountered an error completing msg in dead letter queue"); return Task.CompletedTask; }; }
protected internal virtual Azure.Messaging.ServiceBus.ServiceBusReceiver CreateBatchMessageReceiver(Azure.Messaging.ServiceBus.ServiceBusClient client, string entityPath, Azure.Messaging.ServiceBus.ServiceBusReceiverOptions options) { throw null; }
protected internal virtual Azure.Messaging.ServiceBus.ServiceBusSessionProcessor CreateSessionProcessor(Azure.Messaging.ServiceBus.ServiceBusClient client, string entityPath, Azure.Messaging.ServiceBus.ServiceBusSessionProcessorOptions options) { throw null; }
protected internal virtual Azure.Messaging.ServiceBus.ServiceBusSender CreateMessageSender(Azure.Messaging.ServiceBus.ServiceBusClient client, string entityPath) { throw null; }
protected internal virtual Microsoft.Azure.WebJobs.ServiceBus.MessageProcessor CreateMessageProcessor(Azure.Messaging.ServiceBus.ServiceBusClient client, string entityPath, Azure.Messaging.ServiceBus.ServiceBusProcessorOptions options) { throw null; }
public virtual Azure.Messaging.ServiceBus.ServiceBusSessionProcessor CreateSessionProcessor(Azure.Messaging.ServiceBus.ServiceBusClient client, string entityPath) { throw null; }
public virtual Microsoft.Azure.WebJobs.ServiceBus.SessionMessageProcessor CreateSessionMessageProcessor(Azure.Messaging.ServiceBus.ServiceBusClient client, string entityPath) { throw null; }
public virtual Azure.Messaging.ServiceBus.ServiceBusSender CreateMessageSender(Azure.Messaging.ServiceBus.ServiceBusClient client, string entityPath) { throw null; }
public virtual Azure.Messaging.ServiceBus.ServiceBusReceiver CreateBatchMessageReceiver(Azure.Messaging.ServiceBus.ServiceBusClient client, string entityPath) { throw null; }
public SessionMessageProcessor(Azure.Messaging.ServiceBus.ServiceBusClient client, Azure.Messaging.ServiceBus.ServiceBusSessionProcessor processor) { }