返回

Hangfire:.NET 开发者的后台任务利器

2025-03-28 Hangfire .NET 25 0

在现代应用程序开发中,处理后台任务是常见需求,例如发送邮件、生成报告或清理数据等。Hangfire 是一个适用于 .NET 的开源库,旨在简化后台任务的创建、处理和管理。它无需依赖 Windows 服务或额外的进程,支持任务的持久化存储,并提供直观的可视化界面,方便监控和管理任务。

Hangfire 官网:https://www.hangfire.io/

Hangfire:.NET 开发者的后台任务利器

Hangfire 的核心组件

Hangfire 的架构主要由以下三个部分组成:

客户端(Client): 负责创建各种类型的后台作业,并将其信息存储到持久化存储中。

存储(Storage): 用于保存后台作业及其相关信息,确保任务在应用程序或服务器重启后仍能继续执行。

服务器(Server): 从存储中获取并执行后台作业,支持分布式作业处理和自动重试机制。

Hangfire 的任务类型

Hangfire 支持多种类型的后台任务,包括:

立即执行的任务(Fire-and-forget): 任务在创建后会被立即执行一次。

延迟任务(Delayed): 任务在指定的时间延迟后执行。

定时任务(Recurring): 任务按照设定的时间间隔或特定时间点重复执行。

连续任务(Continuations): 在一个任务完成后,紧接着执行的后续任务。

Hangfire 的可视化界面

Hangfire 提供了内置的可视化仪表板,允许开发者在浏览器中查看任务的执行情况、日志和统计信息。通过访问 http://localhost:端口号/hangfire/,可以直观地监控和管理后台任务,确保任务的正常运行。

Hangfire:.NET 开发者的后台任务利器

Hangfire 使用示例

以下是在 ASP.NET Core 项目中集成 Hangfire 的基本步骤,适用于使用 Program.cs 而非 Startup.cs 的新式项目结构:

1. 安装 Hangfire: 在项目中添加 Hangfire 的 NuGet 包。

2. 配置服务和中间件: 在 Program.cs 文件中,添加 Hangfire 服务并配置其使用的存储方式,例如使用 SQL Server:

using Hangfire;
using Hangfire.SqlServer;

var builder = WebApplication.CreateBuilder(args);

// 配置 Hangfire 服务
builder.Services.AddHangfire(config => config
    .SetDataCompatibilityLevel(CompatibilityLevel.Version_170)
    .UseSimpleAssemblyNameTypeSerializer()
    .UseRecommendedSerializerSettings()
    .UseSqlServerStorage(builder.Configuration.GetConnectionString("HangfireConnection")));

// 添加 Hangfire 服务器
builder.Services.AddHangfireServer();

var app = builder.Build();

// 配置 Hangfire 仪表板
app.UseHangfireDashboard();

app.Run();

在上述代码中,UseSqlServerStorage 方法用于指定 Hangfire 使用 SQL Server 作为持久化存储。请确保在应用程序的配置文件中定义了名为 HangfireConnection 的连接字符串。

3. 创建并调度任务: 在应用程序中,使用 Hangfire 提供的 API 创建并调度后台任务。例如,创建一个立即执行的任务:

BackgroundJob.Enqueue(() => Console.WriteLine("Hello, Hangfire!"));

4. 创建一个每天执行一次的定时任务:

RecurringJob.AddOrUpdate("daily-job", () => Console.WriteLine("Daily job executed"), Cron.Daily);

通过上述步骤,您可以在 ASP.NET Core 项目中轻松集成 Hangfire,实现对后台任务的管理和调度。Hangfire 的灵活性和易用性,使其成为 .NET 开发者处理后台任务的强大工具。

您可能感兴趣:

DOVE 网络加速器 梯子 免费 试用

顶部