hangfire 介绍(一)
什么是Hangfire
Hangfire 是一个开源的.NET任务调度框架,目前1.6+版本已支持.NET Core。个人认为它最大特点在于内置提供集成化的控制台,方便后台查看及监控:
![](/assets/blank.gif)
另外,Hangfire包含三大核心组件:客户端、持久化存储、服务端,官方的流程介绍图如下:
Hangfire基础
基于队列的任务处理(Fire-and-forget jobs)
基于队列的任务处理是Hangfire中最常用的,客户端使用BackgroundJob
类的静态方法Enqueue
来调用,传入指定的方法(或是匿名函数),Job Queue等参数.
var jobId = BackgroundJob.Enqueue(() => Console.WriteLine("Fire-and-forget!"));
在任务被持久化到数据库之后,Hangfire服务端立即从数据库获取相关任务并装载到相应的Job Queue下,在没有异常的情况下仅处理一次,若发生异常,提供重试机制,异常及重试信息都会被记录到数据库中,通过Hangfire控制面板可以查看到这些信息。
延迟任务执行(Delayed jobs)
延迟(计划)任务跟队列任务相似,客户端调用时需要指定在一定时间间隔后调用:
var jobId = BackgroundJob.Schedule(() => Console.WriteLine("Delayed!"),TimeSpan.FromDays(7));
定时任务执行(Recurring jobs)
定时(循环)任务代表可以重复性执行多次,支持CRON
表达式:
RecurringJob.AddOrUpdate(() => Console.WriteLine("Recurring!"),Cron.Daily);
延续性任务执行(Continuations)
延续性任务类似于.NET中的Task
,可以在第一个任务执行完之后紧接着再次执行另外的任务:
BackgroundJob.ContinueWith(jobId,() => Console.WriteLine("Continuation!"));
其实还有批量任务处理,批量任务延续性处理(Batch Continuations),但这个需要商业授权及收费。在我看来,官方提供的开源版本已经基本够用。
hangfire 介绍(一)相关推荐
- 【SF】开源的.NET CORE 基础管理系统 -介绍篇
[SF]开源的.NET CORE 基础管理系统 -系列导航 1.环境: .NET Core SDK (https://www.microsoft.com/net/core) SQL Server or ...
- 给Hangfire的webjob增加callback和动态判断返回结果功能设计
背景介绍 通常业务中需要用到定时执行功能,我用hangfire搭建了一个调度服务,这个调度服务是独立于业务逻辑的,具体可以参考文章:https://github.com/yuzd/Hangfire.H ...
- Hangfire在ASP.NET CORE中的简单实现
hangfire是执行后台任务的利器,具体请看官网介绍:https://www.hangfire.io/ 新建一个asp.net core mvc 项目 引入nuget包 Hangfire.AspNe ...
- Hangfire项目实践分享
项目中使用Hangfire已经快一年了,期间经历过很多次的试错及升级优化,才达到现在的稳定效果.趁最近不是太忙,自己在github上做了个案列,也是拿来跟大家分享下,案例是从项目里剥离出来的,有兴趣的 ...
- hangfire.mysql.core_abp 使用 hangfire结合mysql
abp 官方使用的hangfire 默认使用的是sqlserver的存储mysql 须要引入支持mysql的类库sql 我这边使用的是Hangfire.MySql.Core数据库 直接用nuget安装 ...
- Magicodes.Admin.Core开源框架总体介绍
框架说明 Magicodes.Admin.Core框架在ABP以及ASP.NET ZERO的基础上进行了封装和完善,目前基于.NET Core 2.0+(Framework版本),由于部分组件在.NE ...
- abp 使用 hangfire结合mysql
abp 官方使用的hangfire 默认使用的是sqlserver的存储 需要引入支持mysql的类库 我这边使用的是Hangfire.MySql.Core 直接用nuget安装即可 首先按照官方文档 ...
- 把执行结果转成json对象报错_给Hangfire的webjob增加callback和动态判断返回结果功能设计...
背景介绍 通常业务中需要用到定时执行功能,我用hangfire搭建了一个调度服务,这个调度服务是独立于业务逻辑的,具体可以参考文章:https://github.com/yuzd/Hangfire.H ...
- abp moveto mysql_abp 使用 hangfire结合mysql
abp 官方使用的hangfire 默认使用的是sqlserver的存储 需要引入支持mysql的类库 我这边使用的是Hangfire.MySql.Core 直接用nuget安装即可 首先按照官方文档 ...
最新文章
- tf.get_variable
- Android之如何优雅的管理ActionBar
- dart系列之:你的地盘你做主,使用Extension对类进行扩展
- java鼠标改变窗口大小监听事件_java – 当用户拖动鼠标时,监听JFrame调整事件大小?...
- 用python画出吉祥物
- 为什么企业宁愿花 15K 重新招人,也不愿意花 10K 留住老测试员?
- nginx报错The program 'nginx' can be found in the following packages
- GPCP全球月降水量数据下载与读取
- C语言一个数组中随机抽取5个数字
- linux转录组kegg注释,蛋白质组学KEGG注释详解
- php-fpm前台,php-fpm配置文件详解
- console.log也能插图!!!
- 程序员是做全栈工程师好?还是专注一个领域好?
- Justinmind恢复30天试用 For Mac
- 什么是Hadoop以及Hadoop集群
- 【webGoat】Path traversal
- Unity图片闪烁效果
- 家用计算机手抄报,大学计算机作业手抄报
- 浅谈“POODLE信息泄露漏洞”
- android 播放器 sma,SMA测评app
热门文章
- opencv 使用 GPU 加速
- 2016年7月17日学习 scratch 钢琴键
- Android 10 SystemUI 如何隐藏状态栏输入法图标
- 2023年云计算发展趋势会减缓吗?还能学习就业吗?
- 2019年读书记录及总结
- 线性回归实战---Abalone鲍鱼年龄预测
- MC我的世界模组-模拟城市-教程
- [张雨生][张雨生典藏合集22CD][APE/整轨/7.56 GB][旋风/快传]
- 【Verilog】马里奥小游戏的FPGA实现
- 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java在线电影院售票系统5u8st