收藏本站 [收不到邮件] [导航]
架构师,致力于程序员计算机编程知识交流的一个平台!

架构师_程序员_码农网

  找回密码
  注册[Register]

QQ登录

只需一步,快速开始

快捷导航
  • 架构师架构师
  • 列表
  • 广播
  • 茶馆
  • 智能 AI 对话
  • .NET 职业技术学院
  • 小渣渣博客
搜索
热搜: 程序 html 课程 数据库 锐捷 原创 12306 充值 资料 码农 编程 源码 c语言 网页开发 项目合作 软件 码农网 工具
架构师_程序员_码农网» 架构师 编程开发&Programming .Net/C# asp.net后台任务hangfire框架教程
返回列表 发新帖
查看: 30897|回复: 6

[ASP.NET] asp.net后台任务hangfire框架教程

[复制链接]
小渣渣
发表于 2019-5-24 09:51:10 | 显示全部楼层 | 阅读模式
Hangfire适用于大多数.NET平台:.NET Framework 4.5或更高版本,.NET Core 1.0或更高版本,任何与.NET Standard 1.3兼容的平台。您可以将它与几乎任何应用程序框架集成,包括ASP.NET,ASP.NET Core,控制台应用程序,Windows服务,WCF,以及像Nancy或ServiceStack这样的社区驱动。

适用场景:后台异步发送电子邮件,并尽快向用户返回响应。定时执行任务、循环执行任务、异步执行耗时任务、A任务执行完成再执行B任务、批量执行任务。
我以前的做法方式:

c# 封装了一个万能QueueHelper队列
https://www.itsvse.com/thread-5029-1-1.html
(出处: 架构师_程序员)


您可以将后台处理放在ASP.NET应用程序中,而无需使用其他进程,如Windows服务。Hangfire的代码已准备好在部署过程中意外进程终止,应用程序池回收和重新启动。由于使用了持久存储,因此您不会丢失任何后台作业

首先,效果图如下:


QQ截图20190523173042.jpg QQ截图20190523172738.jpg QQ截图20190523172713.jpg QQ截图20190523172637.jpg

上图是Hangfire Dashboard仪表盘,非常有用,可以查看后台任务状况,也很炫酷,所以,是必须配置的。

仪表板UI需要启动类,仅当您使用Startup类配置Hangfire时,Dashboard UI才可用

一开始,我没有配置Hangfire Dashboard仪表盘,会遇到以下错误:

The following errors occurred while attempting to load the app.
- No assembly found containing an OwinStartupAttribute.
- No assembly found containing a Startup or [AssemblyName].Startup class.
To disable OWIN startup discovery, add the appSetting owin:AutomaticAppStartup with a value of "false" in your web.config.
To specify the OWIN startup Assembly, Class, or Method, add the appSetting owin:AppStartup with the fully qualified startup class or configuration method name in your web.config.

QQ截图20190523170045.jpg

解决办法:

当使用基于Global.asax.cs文件的初始化时,您可能还需要禁用OWIN的启动类检测。

登录可见。
我们开始进入正题,教程开始:

1:框架要满足hangfire的需求,我的项目是.net 4.6.2,所以,可以正常安装hangfire,.net 4.0的项目就不用试了,不支持!

2:nuget命令如下:

登录可见。
3:OWIN Startup类旨在将Web应用程序引导逻辑保留在一个位置。在Visual Studio 2013中,您可以通过右键单击项目并选择Add / OWIN Startup Class菜单项来添加它。如下图:

QQ截图20190523171131.jpg

在项目根目录新建一个Startup.cs文件。

4:配置数据库连接字符串,我这里使用的sql server 2012版本,在web.config配置如下:

登录可见。
5:配置Hangfire Dashboard仪表盘访问过滤器,新建HangfireAuthorizationFilter.cs文件。

默认情况下,只允许对Hangfire Dashboard进行本地访问。必须配置仪表板授权才能允许远程访问。

登录可见。

6:配置Startup.cs类,代码如下:

登录可见。

7:启动网站项目

按下调试模式运行应用程序F5(这需要查看Debug.WriteLine方法的输出)。然后在“ 输出”窗口中检查以下消息,以查看后台处理是否已成功启动。

QQ截图20190524093925.jpg

同时,数据库也多了11张表,保证所有的任务都能正常执行,在iis回收或者进程重启下,任务也不会丢失,如下图:

QQ截图20190523170946.jpg

http://<your-web-app>/hangfire

访问Dashboard UI网址,就可以看到文章最上面的效果图了。

附上用法

Fire-And-forget(发布/订阅)

这是一个主要的后台任务类型,持久化消息队列会去处理这个任务。当你创建了一个发布/订阅任务,该任务会被保存到默认队列里面(默认队列是"Default",但是支持使用多队列)。多个专注的工作者(Worker)会监听这个队列,并且从中获取任务并且完成任务。

登录可见。

延迟

如果想要延迟某些任务的执行,可以是用以下任务。在给定延迟时间后,任务会被排入队列,并且和发布/订阅任务一样执行。
登录可见。

循环

按照周期性(小时,天等)来调用方法,请使用RecurringJob类。在复杂的场景,您可以使用CRON表达式指定计划时间来处理任务。

登录可见。

连续

连续性允许您通过将多个后台任务链接在一起来定义复杂的工作流。

登录可见。

官方文档链接: https://docs.hangfire.io/en/latest/

(完)


hangfire, 框架, 任务




上一篇: 视频数据算法分享笔记
下一篇: 请求被中止: 未能创建 SSL/TLS 安全通道解决方案

相关帖子

  • • EF6 Required 允许空字符串但不允许空的特性
  • • EF SQL 语句自动生成 IS NULL 或者 IS NOT NULL
  • • EF 6 执行原生 SQL 语句,参数注入问题
  • • ASP.NET Core(十九)使用 BackgroundService 运行后台任务
  • • 【译】虚拟演员:Dapr vs Orleans
  • • 【转】一句 Task.Result 就死锁, 这代码还怎么写?
  • • 【实战】XXL-JOB 分布式任务调度平台的使用开发教程
  • • ORM 框架 SqlSugar 的简单使用
  • • ASP.NET Core(七)深入刨析框架源码
  • • .NET/C# 基于 BlockingCollection 后台任务队列
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
回复

举报

YuAn
发表于 2019-5-24 10:12:25 | 显示全部楼层
本帖最后由 YuAn 于 2019-5-24 10:20 编辑

不错的文章 学习了
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
回复 支持 反对

举报

winds
发表于 2019-5-24 10:12:46 | 显示全部楼层
支持 支持
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
回复

举报

fyxh66
发表于 2021-9-17 21:59:44 | 显示全部楼层

支持 支持
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
回复

举报

qianxiao
发表于 2022-9-26 22:20:45 | 显示全部楼层
支持,学习怎么使用
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
回复 支持 反对

举报

lz56415785
发表于 2022-11-12 19:02:23 | 显示全部楼层

支持,学习怎么使用
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
回复 支持 反对

举报

以络
发表于 2023-3-25 09:45:31 | 显示全部楼层

支持,学习怎么使用
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
回复 支持 反对

举报

返回列表 发新帖
高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ| 手机版| 小黑屋| 架构师 ( 鲁ICP备14021824号-2 )| 网站地图

GMT+8, 2024-6-1 09:36

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表

聚圣源纯真岁月马属创幻男孩新生孩子起名esxi无限之升级系统起名的 唐诗宋词龙凤轮胎如何起名生鲜超市起什么名字的好夏洛特·海瑟林克五行查询生辰八字查询起名打分赌博默示录第一季咖啡之翼加盟多少钱息组词gxsky属牛变身偶像公主金融稳定发展委员会宝宝起名注意哪几个方面起名缺土有关的字取名起名字啊财务管理公司起名猪宝宝起名适合使用什么字公司起名免费网周易中介公司大气起名电信流量套餐w两个世界八字起名字测试分析打评分起名八画属的字睿字配什么字搭配起名淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化