rebus-org / Rebus.AzureQueues

:bus: Azure Storage Queues transport implementation for Rebus
https://mookid.dk/category/rebus
Other
7 stars 5 forks source link

Package deprecation: Microsoft.Azure.Storage.Queue #16

Closed sorjor-net closed 2 years ago

sorjor-net commented 2 years ago

Hi,

I was trying to configure Rebus to use Azure Queue Storage with Managed Identity (without any luck, unfortunately). When I noticed that:

This package has been marked as deprecated. https://www.nuget.org/packages/Microsoft.Azure.Storage.Queue

In favor of : https://www.nuget.org/packages/Azure.Storage.Queues

Are there any plans of upgrading Rebus.AzureQueues to use this different version?

There are breaking changes...

Thanks!.. :-)

mookid8000 commented 2 years ago

I just put out Rebus.AzureQueues 3.0.0-b1 that uses https://www.nuget.org/packages/Azure.Storage.Queues 🙂

Could you try it and see if it works as it should?

I'll release a proper version as soon as I've had enough reports that it works.

sorjor-net commented 2 years ago

That was fast.. :-) 👍 And I was stuck in meetings and such..

It seems to be running fine locally (with azurite).. But I noticed it is very chatty in the console logging. I would assume it is the Azure SDK QueueClient that logs all request/response as Information. I guess Rebus doesn't poll more frequently than before?

I will continue to test on Azure with managed identity..

mookid8000 commented 2 years ago

I guess Rebus doesn't poll more frequently than before?

Yeah it shouldn't do that, as I've basically just changed the code to call the new functions. But since the underlying HTTP API is the same as it's always been, it was almost (if not entirely) a 1-to-1 mapping, so I would actually be very surprised if it was more chatty now.

If you like, you can configure Rebus to back off during idle periods by configuring its backoff behavior, e.g. like this:

services.AddRebus(
    configure => configure
        .(...)
        .Options(o => {
            o.SetBackoffTimes(
                TimeSpan.FromMilliseconds(200),
                TimeSpan.FromSeconds(1),
                TimeSpan.FromSeconds(5)
            );
        })  
);

(which will pause 200 ms between polls during the 1st idle second, 1 s in the 2nd idle second, and 5 seconds between polls from the 3rd idle second and on...)