HangFire概述
2018-06-22 07:47:02来源:未知 阅读 ()
概述
Hangfire允许您以非常简单但可靠的方式在请求处理管道外调用方法。这些方法调用是在后台独立线程中执行的,我们称之为后台任务。
HangFire库实现原理由三个主要组件组成:客户端,存储和服务器。以下是一个小图,描述了Hangfire中的主要进程:
适用平台
Hangfire不受特定.NET应用程序类型的限制。您可以在ASP.NET Web应用程序,non-ASP.NET web applications,控制台应用程序或Windows服务中使用它。以下是适用平台:
- .NET Framework 4.5
- Persistent storage (下面有列出)
- Newtonsoft.Json library ≥ 5.0.1
客户端
您可以使用Hangfire创建任何类型的后台任务:fire-and-forget(释放方法调用),延迟(在一段时间后执行)和循环(按时间循环执行等)。
Hangfire不需要你创建特殊的类。后台任务可以基于常规静态或实例方法调用。如下是实例方法调用:
var client = new BackgroundJobClient(); client.Enqueue(() => Console.WriteLine("Easy!")); client.Delay(() => Console.WriteLine("Reliable!"), TimeSpan.FromDays(1));
还有更简单的方法来创建后台任务 - BackgroundJob类
允许您使用静态方法完成方法的创建。如下是静态方法调用:
BackgroundJob.Enqueue(() => Console.WriteLine("Hello!"));
在Hangfire序列化给定信息注并将其保存在持久化库中后,会控制权返回给一调用者。
给定信息:就是传递给HangFire的参数,方法体,执行间隔等
任务存储
HangeFire在一个持久化库保存后台任务和其他涉及后台任务运行的信息。持久化库有助于后台作业在应用程序重新启动后恢复任务列表。这是使用CLR的线程池和Hangfire执行后台任务的主要区别。HangFire支持不同的存储后台:
- SQL Azure, SQL Server 2008 R2 (向后兼容,包括 Express)
- Redis
SQL Server存储可以通过MSMQ或RabbitMQ授权来降低处理延迟。
GlobalConfiguration.Configuration.UseSqlServerStorage("db_connection");
后台服务
后台任务由Hangfire Server 处理。它被实现为一组专用(非线程池的)后台线程,它从存储器中获取作业任务并处理它们。服务器还负责保持存储干净,并自动删除旧数据。
你需要做的是创建一个BackgroundJobServer
类的实例并开始处理一些事情:
using (new BackgroundJobServer()) { Console.WriteLine("Hangfire Server started. Press ENTER to exit..."); Console.ReadLine(); }
Hangfire为每个存储后台使用可靠的提取算法,因此您可以在Web应用程序中启动后台处理程序,而不会在应用程序重新启动或进程终止等情况下丢失后台任务。
总结
原先我们处理后台任务,一般是有自己独立的Windows Service,负责Windows Service的运行,维护后台任务的运行,审计记录,错误处理,还有后台任务有关的参数的保存,现在有了HangFire可以把这些任务都给HangFire,我们只需要处理业务,可以简化我们的工作量。
英文原文:http://docs.hangfire.io/en/latest/index.html
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:mvc重定向方式详解
下一篇:读取文本文件中指定的几列
- 在AbpZero中hangfire后台作业的使用——hangfire的调度 2018-06-22
- .net framework 4 线程安全概述 2018-06-22
- .NET 开发环境搭建 2018-06-22
- .edmx 文件概述(实体框架) 2018-06-22
- ABP文档 - Hangfire 集成 2018-06-22
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash