.NET开源简单易用、内置集成化的控制台、支持持久性存储的任务调度框架 - Hangfire

简介: .NET开源简单易用、内置集成化的控制台、支持持久性存储的任务调度框架 - Hangfire

前言

定时任务调度应该是平时业务开发中比较常见的需求,比如说微信文章定时发布、定时更新某一个业务状态、定时删除一些冗余数据等等。今天给推荐一个.NET开源简单易用、内置集成化的控制台、支持持久性存储的任务调度框架:Hangfire。

项目介绍

Hangfire 是一个非常简单易用的库,可以在 .NET 应用程序中执行后台的、延迟的和定期的任务。它支持 CPU 密集型、I/O 密集型、长时间运行和短时间运行的任务。无需使用 Windows 服务或任务计划程序。同时,Hangfire 可以与 Redis、SQL Server、SQL Azure 和 MSMQ 集成。

项目特点

  1. 简单易用:Hangfire 提供了一个简单而有效的编程模型,使得开发人员可以轻松地执行各种后台任务。
  2. 可靠性强:Hangfire 使用多种机制来确保任务的可靠性,如事务、重试和故障转移等。
  3. 高性能:Hangfire 使用多种技术来提高任务的执行效率,如批量执行、多线程处理、内存缓存等。
  4. 扩展性好:Hangfire 支持多种扩展机制,如插件、中间件、过滤器等,使得开发人员可以根据业务需要自由定制任务处理逻辑。
  5. 持久化存储:Hangfire 提供了多种持久化存储方案,如 Redis、SQL Server、SQL Azure、PostgreSQL、MongoDB 等,可以根据具体情况选择最适合的存储方式。
  6. 任务监控:Hangfire 提供了多种监控工具,可以实时查看任务的执行情况、错误信息、性能指标等。
  7. 多种任务类型支持:Hangfire 支持多种常见的任务类型,如延迟任务、定时任务、周期任务、连续任务等。

后台常用任务调度创建和使用

注意:WriteLog是自己封装的一个通用记录日志的方法。

//支持基于队列的任务处理:任务执行不是同步的,而是放到一个持久化队列中,以便马上把请求控制权返回给调用者。
var jobId = BackgroundJob.Enqueue(()=>WriteLog("队列任务执行了!"));
//延迟任务执行:不是马上调用方法,而是设定一个未来时间点再来执行,延迟作业仅执行一次
var jobId = BackgroundJob.Schedule(()=>WriteLog("一天后的延迟任务执行了!"),TimeSpan .FromDays(1));//一天后执行该任务
//循环任务执行:一行代码添加重复执行的任务,其内置了常见的时间循环模式,也可基于CRON表达式来设定复杂的模式。【用的比较的多】
RecurringJob.AddOrUpdate(()=>WriteLog("每分钟执行任务!"), Cron.Minutely); //注意最小单位是分钟
//延续性任务执行:类似于.NET中的Task,可以在第一个任务执行完之后紧接着再次执行另外的任务
BackgroundJob.ContinueWith(jobId,()=>WriteLog("连续任务!"));

调度控制面板效果图

项目源码地址

更多项目实用功能和特性欢迎前往项目开源地址查看👀,别忘了给项目一个Star支持💖。

https://github.com/HangfireIO/Hangfire

优秀项目和框架精选

该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交PR推荐或自荐(让优秀的项目和框架不被埋没🤞)。

https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md

相关文章
|
19天前
|
数据可视化 网络协议 C#
C#/.NET/.NET Core优秀项目和框架2024年3月简报
公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码地址)。注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯🔔)。
|
2月前
|
开发框架 JavaScript 前端开发
5个.NET开源且强大的快速开发框架(帮助你提高生产效率)
5个.NET开源且强大的快速开发框架(帮助你提高生产效率)
|
3月前
|
XML 开发框架 .NET
ASP.NET COR3.1 集成日志插件NLog
ASP.NET COR3.1 集成日志插件NLog
35 0
|
1天前
|
Java Spring
Spring Boot脚手架集成校验框架
Spring Boot脚手架集成校验框架
6 0
|
9天前
|
监控 测试技术 数据安全/隐私保护
如何将代理IP集成到自动化测试框架中?
如何将代理IP集成到自动化测试框架中?
|
1月前
|
开发框架 网络协议 .NET
深入.net框架
深入.net框架
11 0
|
1月前
|
SQL API 数据处理
新一代实时数据集成框架 Flink CDC 3.0 —— 核心技术架构解析
本文整理自阿里云开源大数据平台吕宴全关于新一代实时数据集成框架 Flink CDC 3.0 的核心技术架构解析。
731 0
新一代实时数据集成框架 Flink CDC 3.0 —— 核心技术架构解析
|
2月前
|
算法 BI API
C#/.NET/.NET Core优秀项目和框架2024年1月简报
C#/.NET/.NET Core优秀项目和框架2024年1月简报
|
3月前
|
IDE 前端开发 JavaScript
【C#】C# 开发环境配置(Rider 一个.NET 跨平台集成开发环境)
【1月更文挑战第26天】【C#】C# 开发环境配置(Rider 一个.NET 跨平台集成开发环境)
|
3月前
|
PHP Windows
php扩展com_dndnet(PHP与.NET框架进行交互)
php扩展com_dndnet(PHP与.NET框架进行交互)
php扩展com_dndnet(PHP与.NET框架进行交互)