大数跨境
0
0

斩获 9.9 K星 !!! 一个 .NET 开源免费、功能强大的任务调度框架

斩获 9.9 K星 !!! 一个 .NET 开源免费、功能强大的任务调度框架 DotNet项目宝库
2025-09-27
2
导读:一个为 .NET 平台设计的开源(GPL-3.0 license)、免费、生产就绪的后台任务处理与调度框架。它允许开发者在 ASP.NET Core、ASP.NET MVC、控制台应用、Windows

致力于挖掘功能强大、性能优越、创新前沿且简单易用的 C#/.NET 开源框架、项目、类库与工具。助力 .NET 开发者轻松解锁并运用这些实用的宝藏资源,提升开发效率与创新能力!

前言

在现代软件开发中,任务调度是构建高效、可靠系统的关键环节。今天为大家推荐一款斩获 9.9K+ GitHub 星星的 .NET 开源项目一个免费免费、功能强大且高度灵活的任务调度框架。它不仅支持丰富的调度策略,还具备良好的扩展性和易用性,适用于从简单定时任务到复杂分布式作业的各种场景,深受 .NET 开发者青睐。

项目介绍

Hangfire 是一个为 .NET 平台设计的开源(GPL-3.0 license)、免费、生产就绪的后台任务处理与调度框架。它允许开发者在 ASP.NET Core、ASP.NET MVC、控制台应用、Windows 服务等各类 .NET 应用中,以简单、可靠、可监控的方式执行后台任务(Background Jobs),无需依赖 Windows 任务计划程序或复杂的消息队列基础设施。

典型应用场景

场景
说明
异步邮件/短信发送
用户注册后异步发送欢迎邮件,避免阻塞主流程。
数据导入/导出
处理大文件上传、Excel 解析、批量数据同步等耗时操作。
定时报表生成
每日凌晨自动生成销售日报、财务对账单等。
缓存预热/清理
定期刷新热点数据缓存或清理过期缓存。
微服务间解耦任务
在无消息队列的轻量级架构中,作为可靠的任务分发机制。
Webhook 重试机制
对失败的第三方回调进行指数退避重试。

项目特点

快速使用

NuGet 包安装

Install-Package Hangfire

Startup.cs 服务注入

using Owin;
using Hangfire;

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        // 配置 Hangfire 使用 SQL Server 存储
        GlobalConfiguration.Configuration
            .UseSqlServerStorage("<your_connection_string_or_name>");

        // 启动 Hangfire 后台处理服务器
        app.UseHangfireServer();

        // 启用 Hangfire Dashboard(注意:生产环境务必加授权!)
        app.UseHangfireDashboard();
    }
}

一次性任务

一次性任务仅执行一次,并在创建后几乎立即执行。

var jobId = BackgroundJob.Enqueue(
    () => Console.WriteLine("Fire-and-forget!"));

延迟任务

延迟任务同样只执行一次,但不是立即执行,而是在特定的时间间隔后执行。

var jobId = BackgroundJob.Schedule(
    () => Console.WriteLine("Delayed!"),
    TimeSpan.FromDays(7));

周期任务

周期性任务按照指定的 CRON 计划多次触发。

RecurringJob.AddOrUpdate(
    "myrecurringjob",
    () => Console.WriteLine("Recurring!"),
    Cron.Daily);

延续

延续在父任务完成后执行。

BackgroundJob.ContinueJobWith(
    jobId,
    () => Console.WriteLine("Continuation!"));

Job可视化管理

开源地址

https://github.com/HangfireIO/Hangfire



图片

【声明】内容源于网络
0
0
DotNet项目宝库
致力于挖掘功能强大、性能优越、创新前沿且简单易用的 C#/.NET 开源框架、项目、类库与工具。助力 .NET 开发者轻松解锁并运用这些实用的宝藏资源,提升开发效率与创新能力!
内容 86
粉丝 0
DotNet项目宝库 致力于挖掘功能强大、性能优越、创新前沿且简单易用的 C#/.NET 开源框架、项目、类库与工具。助力 .NET 开发者轻松解锁并运用这些实用的宝藏资源,提升开发效率与创新能力!
总阅读2
粉丝0
内容86