DynaScaleHangfire 1.0.3
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package DynaScaleHangfire --version 1.0.3
NuGet\Install-Package DynaScaleHangfire -Version 1.0.3
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="DynaScaleHangfire" Version="1.0.3" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DynaScaleHangfire" Version="1.0.3" />
<PackageReference Include="DynaScaleHangfire" />
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 DynaScaleHangfire --version 1.0.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: DynaScaleHangfire, 1.0.3"
#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 DynaScaleHangfire@1.0.3
#: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=DynaScaleHangfire&version=1.0.3
#tool nuget:?package=DynaScaleHangfire&version=1.0.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
DynaScaleHangfire
A dynamic scaling extension for Hangfire that provides real-time queue monitoring and automatic server scaling capabilities.
Features
- Real-time Queue Monitoring: Monitor job queue lengths and processing status
- Dynamic Server Scaling: Automatically scale Hangfire servers based on queue load
- RESTful API: Simple HTTP endpoints for queue management
- Web Dashboard Integration: Seamless integration with Hangfire dashboard
- Configurable Scaling Rules: Customizable thresholds and scaling policies
- Health Monitoring: Built-in health checks and status reporting
Installation
NuGet Package
dotnet add package DynaScaleHangfire
Manual Installation
- Clone this repository
- Build the project
- Reference the built assembly in your project
Usage
Basic Setup
Add the service to your Program.cs
or Startup.cs
:
using DynaScaleHangfire;
// Add services
builder.Services.AddHangfireDynaScale();
// Configure Hangfire
builder.Services.AddHangfire(config =>
{
config.UseSqlServerStorage(connectionString);
});
// Add middleware
app.UseHangfireDynaScale();
app.UseHangfireDashboard();
Configuration
Configure the dynamic scaling settings in appsettings.json
:
{
"HangfireDynaScale": {
"MinWorkerCount": 1,
"MaxWorkerCount": 10,
"ScaleUpThreshold": 100,
"ScaleDownThreshold": 10,
"CheckIntervalSeconds": 30
}
}
API Endpoints
The package provides the following REST endpoints:
GET /dynamic-scaling/queues
- Get current queue statusGET /dynamic-scaling/health
- Get service health statusPOST /dynamic-scaling/scale-up
- Manually trigger scale upPOST /dynamic-scaling/scale-down
- Manually trigger scale down
JavaScript Integration
Include the dynamic scaling JavaScript in your Hangfire dashboard:
<script src="/hangfire/js/dynamic-scaling.js"></script>
Project Structure
DynaScaleHangfire/
├── Controllers/
│ └── DynaScaleController.cs # REST API endpoints
├── Extensions/
│ ├── ApplicationBuilderExtensions.cs # Middleware configuration
│ └── ServiceCollectionExtensions.cs # DI configuration
├── Models/
│ └── HangfireSettings.cs # Configuration models
├── Services/
│ ├── HangfireServerManager.cs # Core scaling logic
│ └── IHangfireServerManager.cs # Service interface
└── wwwroot/
└── js/
└── dynamic-scaling.js # Frontend JavaScript
Configuration Options
Setting | Type | Default | Description |
---|---|---|---|
MinWorkerCount | int | 1 | Minimum number of worker servers |
MaxWorkerCount | int | 10 | Maximum number of worker servers |
ScaleUpThreshold | int | 100 | Queue length threshold for scaling up |
ScaleDownThreshold | int | 10 | Queue length threshold for scaling down |
CheckIntervalSeconds | int | 30 | Interval between scaling checks |
Development
Prerequisites
- .NET 7.0 SDK or later
- Visual Studio 2022 or VS Code
- SQL Server (for Hangfire storage)
Building
dotnet restore
dotnet build
dotnet test
Testing
dotnet test
Creating NuGet Package
dotnet pack -c Release
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contact
- Project Link: https://github.com/yourusername/DynaScaleHangfire
- Issues: https://github.com/yourusername/DynaScaleHangfire/issues
Acknowledgments
- Built on top of Hangfire
- Inspired by modern microservices scaling patterns
- Community contributions and feedback
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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.
-
net7.0
- Hangfire.Core (>= 1.8.6)
- Microsoft.AspNetCore.Mvc.Core (>= 2.2.5)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 7.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated | |
---|---|---|---|
1.0.36 | 90 | 7/4/2025 | |
1.0.35 | 95 | 7/4/2025 | |
1.0.34 | 90 | 7/4/2025 | |
1.0.33 | 94 | 7/4/2025 | |
1.0.32 | 107 | 7/4/2025 | |
1.0.31 | 124 | 7/4/2025 | |
1.0.30 | 116 | 7/4/2025 | |
1.0.29 | 143 | 7/3/2025 | |
1.0.28 | 127 | 7/3/2025 | |
1.0.27 | 136 | 7/3/2025 | |
1.0.26 | 126 | 7/3/2025 | |
1.0.25 | 130 | 7/3/2025 | |
1.0.24 | 133 | 7/3/2025 | |
1.0.23 | 135 | 7/3/2025 | |
1.0.22 | 127 | 7/3/2025 | |
1.0.21 | 143 | 6/30/2025 | |
1.0.20 | 129 | 6/30/2025 | |
1.0.19 | 124 | 6/30/2025 | |
1.0.18 | 122 | 6/30/2025 | |
1.0.17 | 127 | 6/30/2025 | |
1.0.16 | 126 | 6/30/2025 | |
1.0.15 | 205 | 6/30/2025 | |
1.0.14 | 203 | 6/30/2025 | |
1.0.13 | 206 | 6/30/2025 | |
1.0.12 | 206 | 6/30/2025 | |
1.0.11 | 207 | 6/30/2025 | |
1.0.10 | 209 | 6/30/2025 | |
1.0.9 | 177 | 6/27/2025 | |
1.0.8 | 118 | 6/27/2025 | |
1.0.7 | 124 | 6/27/2025 | |
1.0.6 | 125 | 6/27/2025 | |
1.0.4 | 163 | 6/27/2025 | |
1.0.3 | 175 | 6/26/2025 | |
1.0.2 | 289 | 6/26/2025 |