RevolutionaryStuff.Azure 4.185.100

dotnet add package RevolutionaryStuff.Azure --version 4.185.100
                    
NuGet\Install-Package RevolutionaryStuff.Azure -Version 4.185.100
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RevolutionaryStuff.Azure" Version="4.185.100" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="RevolutionaryStuff.Azure" Version="4.185.100" />
                    
Directory.Packages.props
<PackageReference Include="RevolutionaryStuff.Azure" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add RevolutionaryStuff.Azure --version 4.185.100
                    
#r "nuget: RevolutionaryStuff.Azure, 4.185.100"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package RevolutionaryStuff.Azure@4.185.100
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=RevolutionaryStuff.Azure&version=4.185.100
                    
Install as a Cake Addin
#tool nuget:?package=RevolutionaryStuff.Azure&version=4.185.100
                    
Install as a Cake Tool

RevolutionaryStuff.Azure

Azure SDK integrations including Service Bus messaging, Key Vault, background services, and token credential helpers.

Service Bus message locks

ServiceBusBackgroundService uses the Azure SDK's ServiceBusProcessor in PeekLock mode. The SDK controls concurrency and automatically renews locks while message handlers run. The service completes successful messages, dead-letters permanent failures, and abandons other processing failures for retry. Graceful shutdown stops receiving and waits for active handlers before disposing the processor so renewal can continue during draining; handlers that never finish can delay shutdown.

Configure the consumer in ServiceBusWorkerConfig:

  • MaxMessageLockTime defaults to Timeout.InfiniteTimeSpan ("-00:00:00.001" in JSON), allowing automatic renewal for the lifetime of a handler. It controls the total renewal window, not the broker's individual lock duration. Remove any old explicit two-minute value, or set it to infinite, if processing can run longer. Per-execution values override the global setting. A finite value stops renewal after that window even if the handler is still running.
  • MessagePrefetch defaults to 0. Leave it at zero for long-running or debugged handlers: prefetched messages are already locked while waiting locally, and their locks are not automatically renewed until processing starts. Remove old nonzero overrides where appropriate.
  • ConcurrentExecutors defaults to 1 per execution per process. Increase it to process multiple messages concurrently; it is not a cross-process concurrency limit.
  • MessageLockRenewalTimeout and RenewalTime are obsolete and ignored. Renewal timing is managed by the SDK rather than a custom timer.

Set Lock duration on the Azure Service Bus queue or topic subscription to 00:02:00 for approximately a one-to-two-minute crash-recovery window. This service does not change broker settings or require management permissions. After a crash, another consumer can receive the message after the last renewed lock expires; the remaining delay depends on when renewal last succeeded. Infinite automatic renewal does not create a permanent broker lock.

While a PeekLock remains valid, another consumer cannot receive that same queued message. This is not an absolute concurrency or exactly-once guarantee: network failures, service disruptions, or debugger pauses can prevent renewal and allow redelivery while the original handler is still running. Keep handlers idempotent; strict protection against overlapping side effects requires application-level coordination such as fencing enforced by the target data store. Separate topic subscriptions each receive their own copy and have independent locks.

When Visual Studio pauses all threads, lock renewal pauses too, but Azure's clock keeps running. For debugging, use an isolated queue/subscription and consider its maximum supported lock duration of five minutes; this also increases crash-recovery delay. No in-process renewal loop can keep a lock alive through an arbitrary all-thread pause. After a lock expires, it cannot be renewed or used to settle that delivery; MessageLockLost is reported rather than repaired by retrying the same lock.

What is Revolutionary Stuff

Revolutionary Stuff is a company I created a while back to work on creative ideas.

These libraries are a collection of utilities and tools I've created since .NET 1 Beta 2 (don't worry, there have been a few updates since then).

I use these is virtually all of the .NET projects I create to speed my development.

License Agreement

Somewhere deep in the GitHub repo and in the NuGet packages you'll find a license agreement. It's the MIT license. You can use this code in your projects, commercial or otherwise, with no restrictions.

I offer no warranties of any sort. But if you find a bug or want to request a change, post a message to the Issues.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (5)

Showing the top 5 NuGet packages that depend on RevolutionaryStuff.Azure:

Package Downloads
RevolutionaryStuff.Data.Cosmos

Package Description

RevolutionaryStuff.Data.SqlAzure

Package Description

RevolutionaryStuff.Storage.Providers.Azure.Blob

Package Description

RevolutionaryStuff.Applets.WebhookReceiverHost

Package Description

RevolutionaryStuff.Applets.Webhooked

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
4.185.100 81 9/16/2026
4.181.100 134 9/2/2026
4.178.100 170 8/27/2026
4.176.100 167 8/23/2026
4.174.100 156 8/12/2026
4.172.100 184 7/26/2026
4.170.100 174 7/19/2026
4.169.100 175 7/15/2026
4.168.100 179 7/13/2026
4.167.100 181 7/6/2026
4.165.100 194 6/24/2026
4.164.100 188 6/19/2026
4.163.100 207 6/11/2026
4.162.100 204 6/8/2026
4.161.100 211 6/1/2026
4.158.100 177 5/12/2026
4.157.100 199 5/8/2026
4.156.100 166 5/4/2026
4.155.100 175 5/3/2026
4.153.100 159 5/3/2026
Loading failed

This is now a .NET 9 library