概览

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-快速入门相关推荐

  1. hangfire mysql_.NET之Hangfire快速入门和使用

    文章正文: 前言: 定时任务调度问题,是一个老生常谈的问题.网上有许多定时任务调度的解决方案,对于我而言很早以前主要是使用Window计划和Window服务来做任务定时执行,然后就开始使用定时任务调度 ...

  2. .NET中Hangfire快速入门和使用-迷恋自留地

    前言: 定时任务调度问题,是一个老生常谈的问题.网上有许多定时任务调度的解决方案,对于我而言很早以前主要是使用Window计划和Window服务来做任务定时执行,然后就开始使用定时任务调度框架Quar ...

  3. .NET之Hangfire快速入门和使用 (定时任务调度的一种解决方案)

    注意: 1. 当Hangfire服务由Web程序来启用时,默认情况下,web应用程序中的Hangfire服务器实例在第一个用户访问您的站点之前不会启动.甚至,有一些事件会在一段时间后导致web应用程序 ...

  4. Shiro第一个程序:官方快速入门程序Qucickstart详解教程

    目录 一.下载解压 二.第一个Shiro程序 1. 导入依赖 2. 配置shiro配置文件 3. Quickstart.java 4. 启动测试 三.shiro.ini分析 四.Quickstart. ...

  5. 计算机入门新人必学,异世修真人怎么玩?新手快速入门必备技巧

    异世修真人怎么快速入门?最近新出来的一款文字修仙游戏,很多萌新不知道怎么玩?进小编给大家带来了游戏新手快速入门技巧攻略,希望可以帮到大家. 新手快速入门攻略 1.开局出来往下找婆婆,交互给点钱,旁边有 ...

  6. Spring Boot 2 快速教程:WebFlux 快速入门(二)

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘 ...

  7. Apache Hive 快速入门 (CentOS 7.3 + Hadoop-2.8 + Hive-2.1.1)

    2019独角兽企业重金招聘Python工程师标准>>> 本文节选自<Netkiller Database 手札> 第 63 章 Apache Hive 目录 63.1. ...

  8. 《iOS9开发快速入门》——导读

    本节书摘来自异步社区<iOS9开发快速入门>一书中的目录,作者 刘丽霞 , 邱晓华,更多章节内容可以访问云栖社区"异步社区"公众号查看 目 录 前 言 第1章 iOS ...

  9. BIML 101 - ETL数据清洗 系列 - BIML 快速入门教程 - 序

    BIML 101 - BIML 快速入门教程 做大数据的项目,最花时间的就是数据清洗. 没有一个相对可靠的数据,数据分析就是无木之舟,无水之源. 如果你已经进了ETL这个坑,而且预算有限,并且有大量的 ...

  10. python scrapy菜鸟教程_scrapy学习笔记(一)快速入门

    安装Scrapy Scrapy是一个高级的Python爬虫框架,它不仅包含了爬虫的特性,还可以方便的将爬虫数据保存到csv.json等文件中. 首先我们安装Scrapy. pip install sc ...

最新文章

  1. 滴滴裁员补偿丰厚,员工称裁出幸福感?
  2. html 常用方法,jquery的常用方法有哪些?
  3. PostgreSQL在何处处理 sql查询之五十一
  4. “美登杯”上海市高校大学生程序设计邀请赛 (华东理工大学)
  5. 一个easyui的案例(SSH)
  6. fedora 15怎么修改运行级别?
  7. 如何洗牌 ListT 中的元素?
  8. [渝粤教育] 中国地质大学 面向对象程序设计 复习题
  9. 百度联合长虹发布第二款云手机 售价900元以下
  10. java多线程构造函数_java线程基础巩固---多线程与JVM内存结构的关系及Thread构造函数StackSize的理解...
  11. 41. 理解ptr_fun、mem_fun和mem_fun_ref的来由
  12. python django做网页论文_Python Web程序-Django框架搭建网站的简单介绍
  13. Perl语言必看书籍推荐
  14. container_of的用法
  15. vb如何调用计算机日历,跪求vb.net简易日历制作的源代码
  16. RAC 11G ASM磁盘损坏恢复
  17. 服务器处理蜘蛛抓取网页的过程,搜索引擎蜘蛛抓取页面过程图解
  18. 运行内存数据加密加密
  19. win7系统补丁服务器,win7怎么批量卸载系统更新补丁KB? win7快速删除系统补丁的技巧...
  20. HTML5音频可视化频谱跳动代码

热门文章

  1. LaTex使用技巧10:公式中的各种英文字体
  2. 短视频底层实操课,让你迅速从短视频新手变成高手
  3. 数据库版本管理工具 -- Flyway
  4. 深度学习从入门到精通——图像分割之DeepLab系列算法
  5. 深入理解自编码器(用变分自编码器生成图像)
  6. 内网服务器反弹映射到公网ip去访问
  7. 条件概率、全概率、先验概率、后验概率
  8. IDEA使用手记——IDEA主菜单被隐藏了!!
  9. 一 马尔可夫决策问题
  10. 10个深度学习的工具