hangfire-快速入门
概览
Hangfire允许您以非常简单但可靠的方式启动请求处理管道之外的方法调用。这些方法调用在后台线程中执行,称为后台作业。
库由三个主要组件组成:客户端、存储和服务器。下面是一个小图表,描述了Hangfire的主要流程:
前提
Hangfire未绑定到特定的.NET应用程序类型。您可以在ASP.NET web应用程序、非ASP.NET web应用、控制台应用程序或Windows服务中使用它。以下是要求:
- .NET Framework 4.5
- Persistent storage (listed below)
- Newtonsoft.Json library ≥ 5.0.1
客户端
您可以使用Hangfire创建任何类型的后台作业:即发即弃(以卸载方法调用)、延迟(以在一段时间后执行调用)和重复(以每小时、每天执行方法,等等)。
Hangfire不要求您创建特殊类。后台作业基于常规静态或实例方法调用。
var client = new BackgroundJobClient();client.Enqueue(() => Console.WriteLine("就是这么简单"));
client.Delay(() => Console.WriteLine("延迟执行"), TimeSpan.FromDays(1));
还有一种更简单的方法来创建后台作业——BackgroundJob类,它允许您使用静态方法来执行创建任务。
BackgroundJob.Enqueue(() => Console.WriteLine("Hello!"));
在Hangfire序列化给定信息并将其保存到存储器之后,控件将返回给调用者。
任务存储
Hangfire将后台作业和与处理相关的其他信息保存在持久存储中。持久性有助于后台作业在应用程序重新启动、服务器重新启动等情况下生存。这是使用CLR的线程池和Hangfire执行后台作业的主要区别。支持不同的存储后端:
- SQL Azure, SQL Server 2008 R2 (and later of any edition, including Express)
- Redis
SQL Server存储可以通过MSMQ或RabbitMQ来增强,以降低处理延迟。
GlobalConfiguration.Configuration.UseSqlServerStorage("db_connection");
服务器
后台作业由Hangfire服务器处理。它被实现为一组专用的(非线程池的)后台线程,用于从存储中获取作业并处理它们。服务器还负责保持存储清洁并自动删除旧数据。
您只需创建BackgroundJobServer类的实例并开始处理:
using (new BackgroundJobServer())
{Console.WriteLine("Hangfire Server started. Press ENTER to exit...");Console.ReadLine();
}
Hangfire为每个存储后端使用可靠的提取算法,因此您可以在web应用程序中启动处理,而不会在应用程序重新启动、进程终止等时丢失后台作业。
hangfire-快速入门相关推荐
- hangfire mysql_.NET之Hangfire快速入门和使用
文章正文: 前言: 定时任务调度问题,是一个老生常谈的问题.网上有许多定时任务调度的解决方案,对于我而言很早以前主要是使用Window计划和Window服务来做任务定时执行,然后就开始使用定时任务调度 ...
- .NET中Hangfire快速入门和使用-迷恋自留地
前言: 定时任务调度问题,是一个老生常谈的问题.网上有许多定时任务调度的解决方案,对于我而言很早以前主要是使用Window计划和Window服务来做任务定时执行,然后就开始使用定时任务调度框架Quar ...
- .NET之Hangfire快速入门和使用 (定时任务调度的一种解决方案)
注意: 1. 当Hangfire服务由Web程序来启用时,默认情况下,web应用程序中的Hangfire服务器实例在第一个用户访问您的站点之前不会启动.甚至,有一些事件会在一段时间后导致web应用程序 ...
- Shiro第一个程序:官方快速入门程序Qucickstart详解教程
目录 一.下载解压 二.第一个Shiro程序 1. 导入依赖 2. 配置shiro配置文件 3. Quickstart.java 4. 启动测试 三.shiro.ini分析 四.Quickstart. ...
- 计算机入门新人必学,异世修真人怎么玩?新手快速入门必备技巧
异世修真人怎么快速入门?最近新出来的一款文字修仙游戏,很多萌新不知道怎么玩?进小编给大家带来了游戏新手快速入门技巧攻略,希望可以帮到大家. 新手快速入门攻略 1.开局出来往下找婆婆,交互给点钱,旁边有 ...
- Spring Boot 2 快速教程:WebFlux 快速入门(二)
2019独角兽企业重金招聘Python工程师标准>>> 摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘 ...
- Apache Hive 快速入门 (CentOS 7.3 + Hadoop-2.8 + Hive-2.1.1)
2019独角兽企业重金招聘Python工程师标准>>> 本文节选自<Netkiller Database 手札> 第 63 章 Apache Hive 目录 63.1. ...
- 《iOS9开发快速入门》——导读
本节书摘来自异步社区<iOS9开发快速入门>一书中的目录,作者 刘丽霞 , 邱晓华,更多章节内容可以访问云栖社区"异步社区"公众号查看 目 录 前 言 第1章 iOS ...
- BIML 101 - ETL数据清洗 系列 - BIML 快速入门教程 - 序
BIML 101 - BIML 快速入门教程 做大数据的项目,最花时间的就是数据清洗. 没有一个相对可靠的数据,数据分析就是无木之舟,无水之源. 如果你已经进了ETL这个坑,而且预算有限,并且有大量的 ...
- python scrapy菜鸟教程_scrapy学习笔记(一)快速入门
安装Scrapy Scrapy是一个高级的Python爬虫框架,它不仅包含了爬虫的特性,还可以方便的将爬虫数据保存到csv.json等文件中. 首先我们安装Scrapy. pip install sc ...
最新文章
- 滴滴裁员补偿丰厚,员工称裁出幸福感?
- html 常用方法,jquery的常用方法有哪些?
- PostgreSQL在何处处理 sql查询之五十一
- “美登杯”上海市高校大学生程序设计邀请赛 (华东理工大学)
- 一个easyui的案例(SSH)
- fedora 15怎么修改运行级别?
- 如何洗牌 ListT 中的元素?
- [渝粤教育] 中国地质大学 面向对象程序设计 复习题
- 百度联合长虹发布第二款云手机 售价900元以下
- java多线程构造函数_java线程基础巩固---多线程与JVM内存结构的关系及Thread构造函数StackSize的理解...
- 41. 理解ptr_fun、mem_fun和mem_fun_ref的来由
- python django做网页论文_Python Web程序-Django框架搭建网站的简单介绍
- Perl语言必看书籍推荐
- container_of的用法
- vb如何调用计算机日历,跪求vb.net简易日历制作的源代码
- RAC 11G ASM磁盘损坏恢复
- 服务器处理蜘蛛抓取网页的过程,搜索引擎蜘蛛抓取页面过程图解
- 运行内存数据加密加密
- win7系统补丁服务器,win7怎么批量卸载系统更新补丁KB? win7快速删除系统补丁的技巧...
- HTML5音频可视化频谱跳动代码