Sparkdo.BackgroundWorkers.Hangfire
1.0.1
.NET 10.0
This package targets .NET 10.0. The package is compatible with this framework or higher.
.NET Standard 2.0
This package targets .NET Standard 2.0. The package is compatible with this framework or higher.
There is a newer prerelease version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package Sparkdo.BackgroundWorkers.Hangfire --version 1.0.1
NuGet\Install-Package Sparkdo.BackgroundWorkers.Hangfire -Version 1.0.1
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="Sparkdo.BackgroundWorkers.Hangfire" Version="1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Sparkdo.BackgroundWorkers.Hangfire" Version="1.0.1" />
<PackageReference Include="Sparkdo.BackgroundWorkers.Hangfire" />
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 Sparkdo.BackgroundWorkers.Hangfire --version 1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Sparkdo.BackgroundWorkers.Hangfire, 1.0.1"
#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 Sparkdo.BackgroundWorkers.Hangfire@1.0.1
#: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=Sparkdo.BackgroundWorkers.Hangfire&version=1.0.1
#tool nuget:?package=Sparkdo.BackgroundWorkers.Hangfire&version=1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Sparkdo.BackgroundWorkers.Hangfire
Sparkdo Hangfire 后台工作者库,提供基于 Hangfire 的后台工作者功能集成实现。
功能特性
- 与 Hangfire 后台工作者框架无缝集成
- 支持周期性后台任务的调度和执行
- 支持 Cron 表达式配置
- 支持时区配置
- 支持队列配置
- 与 Sparkdo 框架无缝集成
安装
<PackageReference Include="Sparkdo.BackgroundWorkers.Hangfire" Version="x.x.x" />
核心组件
SparkdoBackgroundWorkersHangfireModule
Hangfire 后台工作者模块配置类,负责配置和注册 Hangfire 相关服务到依赖注入容器中:
- 替换默认的后台工作者管理器为 Hangfire 实现
- 根据配置决定是否启用后台工作者执行
HangfireBackgroundWorkerManager
Hangfire 后台工作者管理器,负责管理 Hangfire 后台工作者的注册和执行:
AddAsync(): 异步添加后台工作者GetRecurringJobId(): 获取周期性作业IDGetCron(): 根据时间间隔获取 Cron 表达式
HangfireBackgroundWorkerBase
Hangfire 后台工作者基类,提供 Hangfire 后台工作者的基本实现:
RecurringJobId: 周期性作业IDCronExpression: Cron 表达式TimeZone: 时区信息Queue: 队列名称DoWorkAsync(): 执行工作异步方法
HangfirePeriodicBackgroundWorkerAdapter
Hangfire 周期性后台工作者适配器,用于适配周期性后台工作者与 Hangfire 的集成:
DoWorkAsync(): 执行工作异步方法
IHangfireBackgroundWorker
Hangfire 后台工作者接口,定义 Hangfire 后台工作者的核心功能:
RecurringJobId: 周期性作业IDCronExpression: Cron 表达式TimeZone: 时区信息Queue: 队列名称DoWorkAsync(): 执行工作异步方法
扩展性
该库提供了完整的 Hangfire 集成功能实现,可以通过以下方式扩展:
- 继承
HangfireBackgroundWorkerBase来创建自定义的后台工作者 - 实现
IHangfireBackgroundWorker接口来定义自定义的后台工作者行为 - 通过配置
SparkdoHangfireOptions来自定义 Hangfire 行为
代码结构说明
本项目包含以下主要组件:
模块配置
SparkdoBackgroundWorkersHangfireModule: Hangfire 后台工作者模块配置类
工作者管理
HangfireBackgroundWorkerManager: Hangfire 后台工作者管理器
工作者实现
HangfireBackgroundWorkerBase: Hangfire 后台工作者基类HangfirePeriodicBackgroundWorkerAdapter: Hangfire 周期性后台工作者适配器
工作者接口
IHangfireBackgroundWorker: Hangfire 后台工作者接口
所有公共接口和类都添加了详细的 XML 文档注释,便于开发者理解和使用。
| 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. 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. |
| .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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- Hangfire.AspNetCore (>= 1.8.22)
- Hangfire.InMemory (>= 1.0.0)
- JetBrains.Annotations (>= 2025.2.2)
- Microsoft.AspNetCore.Authorization (>= 10.0.0)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.0)
- Microsoft.Extensions.Configuration (>= 10.0.0)
- Microsoft.Extensions.Configuration.CommandLine (>= 10.0.0)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 10.0.0)
- Microsoft.Extensions.Configuration.FileExtensions (>= 10.0.0)
- Microsoft.Extensions.Configuration.Json (>= 10.0.0)
- Microsoft.Extensions.Configuration.UserSecrets (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Extensions.DependencyModel (>= 10.0.0)
- Microsoft.Extensions.Diagnostics (>= 10.0.0)
- Microsoft.Extensions.FileProviders.Composite (>= 10.0.0)
- Microsoft.Extensions.FileProviders.Embedded (>= 10.0.0)
- Microsoft.Extensions.FileProviders.Physical (>= 10.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Localization (>= 10.0.0)
- Microsoft.Extensions.Logging (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Options (>= 10.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.0)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.0)
- Newtonsoft.Json (>= 13.0.4)
- Nito.AsyncEx.Context (>= 5.1.2)
- Sparkdo.BackgroundWorkers (>= 1.0.1)
- Sparkdo.Hangfire (>= 1.0.1)
- System.Linq.Dynamic.Core (>= 1.7.0)
- System.Runtime.Loader (>= 4.3.0)
- System.Text.Json (>= 10.0.0)
-
net10.0
- Hangfire.AspNetCore (>= 1.8.22)
- Hangfire.InMemory (>= 1.0.0)
- JetBrains.Annotations (>= 2025.2.2)
- Microsoft.AspNetCore.Authorization (>= 10.0.0)
- Microsoft.Extensions.Configuration (>= 10.0.0)
- Microsoft.Extensions.Configuration.CommandLine (>= 10.0.0)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 10.0.0)
- Microsoft.Extensions.Configuration.FileExtensions (>= 10.0.0)
- Microsoft.Extensions.Configuration.Json (>= 10.0.0)
- Microsoft.Extensions.Configuration.UserSecrets (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Extensions.DependencyModel (>= 10.0.0)
- Microsoft.Extensions.Diagnostics (>= 10.0.0)
- Microsoft.Extensions.FileProviders.Composite (>= 10.0.0)
- Microsoft.Extensions.FileProviders.Embedded (>= 10.0.0)
- Microsoft.Extensions.FileProviders.Physical (>= 10.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Localization (>= 10.0.0)
- Microsoft.Extensions.Logging (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Options (>= 10.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.0)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.0)
- Newtonsoft.Json (>= 13.0.4)
- Nito.AsyncEx.Context (>= 5.1.2)
- Sparkdo.BackgroundWorkers (>= 1.0.1)
- Sparkdo.Hangfire (>= 1.0.1)
- System.Linq.Dynamic.Core (>= 1.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.2-preview.4 | 47 | 2/8/2026 |
| 1.0.2-preview.3 | 48 | 2/1/2026 |
| 1.0.2-preview.2 | 52 | 1/31/2026 |
| 1.0.2-preview.1 | 160 | 12/4/2025 |
| 1.0.1 | 209 | 11/27/2025 |
| 1.0.0 | 189 | 11/25/2025 |
| 1.0.0-preview.5 | 119 | 10/24/2025 |