DMStorage.Hangfire
1.0.0.3
dotnet add package DMStorage.Hangfire --version 1.0.0.3
NuGet\Install-Package DMStorage.Hangfire -Version 1.0.0.3
<PackageReference Include="DMStorage.Hangfire" Version="1.0.0.3" />
<PackageVersion Include="DMStorage.Hangfire" Version="1.0.0.3" />
<PackageReference Include="DMStorage.Hangfire" />
paket add DMStorage.Hangfire --version 1.0.0.3
#r "nuget: DMStorage.Hangfire, 1.0.0.3"
#addin nuget:?package=DMStorage.Hangfire&version=1.0.0.3
#tool nuget:?package=DMStorage.Hangfire&version=1.0.0.3
Hangfire.DMStorage
<a target="_blank" href="Chinese_README.md">中文</a>
Hangfire.DMStorage is an extension component that provides support for Hangfire to use the Dameng database.
Dameng storage implementation of <a href="http://hangfire.io/" target="_blank">Hangfire</a>- fire-and-forget, delayed and recurring tasks runner for .NET. Scalable and reliable background job runner. Supports multiple servers, CPU and I/O intensive, long-running and short-running jobs.
Installation
Install Hangfire.DMStorage
Run the following command in the NuGet Package Manager console to install Hangfire.DMStorage:
Install-Package DMStorage.Hangfire
Usage
Use one the following ways to initialize DMStorage
:
- Create new instance of
DMStorage
with connection string constructor parameter and pass it toConfiguration
withUseStorage
method:
GlobalConfiguration.Configuration.UseStorage(
new DMStorage(connectionString));
- Alternatively one or more options can be passed as a parameter to
DMStorage
:
GlobalConfiguration.Configuration.UseStorage(
new DMStorage(
connectionString,
new DMStorageOptions
{
TransactionIsolationLevel =IsolationLevel.ReadCommitted,
QueuePollInterval = TimeSpan.FromSeconds(15),
JobExpirationCheckInterval = TimeSpan.FromHours(1),
CountersAggregateInterval = TimeSpan.FromMinutes(5),
PrepareSchemaIfNecessary = true,
DashboardJobListLimit = 50000,
TransactionTimeout = TimeSpan.FromMinutes(1),
SchemaName= "SYSDBA"
}));
Use in Hangfire.HttpJob
context.Services.AddHangfire(x => x.UseStorage(new DMStorage(connectionString, new DMStorageOptions()
{
TransactionIsolationLevel = System.Data.IsolationLevel.ReadCommitted,
QueuePollInterval = TimeSpan.FromSeconds(15),
JobExpirationCheckInterval = TimeSpan.FromHours(1),
CountersAggregateInterval = TimeSpan.FromMinutes(5),
PrepareSchemaIfNecessary = true,
DashboardJobListLimit = 50000,
TransactionTimeout = TimeSpan.FromMinutes(1),
SchemaName = "SYSDBA"
}))
.UseConsole()
.UseHangfireHttpJob());
Description of optional parameters:
TransactionIsolationLevel
- transaction isolation level. Default is read committed. Didn't test with other options!QueuePollInterval
- job queue polling interval. Default is 15 seconds.JobExpirationCheckInterval
- job expiration check interval (manages expired records). Default is 1 hour.CountersAggregateInterval
- interval to aggregate counter. Default is 5 minutes.PrepareSchemaIfNecessary
- if set totrue
, it creates database tables. Default istrue
.DashboardJobListLimit
- dashboard job list limit. Default is 50000.TransactionTimeout
- transaction timeout. Default is 1 minute.SchemaName
- schema name.
How to limit number of open connections
Number of opened connections depends on Hangfire worker count. You can limit worker count by setting WorkerCount
property value in BackgroundJobServerOptions
:
app.UseHangfireServer(
new BackgroundJobServerOptions
{
WorkerCount = 1
});
More info: <a target="_blank" href="http://hangfire.io/features.html#concurrency-level-control">http://hangfire.io/features.html#concurrency-level-control</a>
Build
Please use Visual Studio or any other tool of your choice to build the solution.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Dapper (>= 1.50.5)
- DM.DmProvider (>= 8.3.1.28188)
- Hangfire.Core (>= 1.7.25)
- Microsoft.CSharp (>= 4.7.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.0.3 | 149 | 3/12/2025 |
1、Fix known script errors.