Azure Service Bus - Auto Delete on Idle

March 27, 2021

In the past few months, I’ve written, and spoken quite a lot about Azure Service Bus - especially the new features that are now available out of the box. here I wrote about Auto-forwarding, and in this post, I’m going to cover auto-delete; I think the two subjects go hand-in-hand.

The idea behind auto-delete is that if a set of messages are time sensitive, then the message queue can be flagged for auto-deletion. This is not the same as “Time To Live” for a message, because the entire queue is deleted after a period of inactivity!

Let’s see how we can set-up a new queue, in code (see the referenced post above for the NuGet packages that you’ll need for this):

        private static async Task CreateAutoDeleteQueue(string connectionString, string queueName)
            // Create authorisation rules
            var authorisationRule = new SharedAccessAuthorizationRule(
                "manage", new[] { AccessRights.Manage, AccessRights.Listen, AccessRights.Send });

            var serviceBusAdministrationClient = new ServiceBusAdministrationClient(connectionString);
            var options = new CreateQueueOptions(queueName)
                AutoDeleteOnIdle = TimeSpan.FromMinutes(5)

            var queue = await serviceBusAdministrationClient.CreateQueueAsync(options);


We can now post a number of messages to that queue:

deleteonidle 1

Then, 5 minutes after the last message have been posted (or any activity has taken place), the queue is deleted:

deleteonidle 2


Profile picture

A blog about one man's journey through code… and some pictures of the Peak District

© Paul Michaels 2024