后台定时任务的利器Hangfire
来源:互联网 发布:单片机lcd12864 编辑:程序博客网 时间:2024/06/04 19:33
Hangfire是一个开源且商业免费使用的工具函数库。可以让你非常容易地在ASP.NET应用(也可以不在ASP.NET应用)中执行多种类型的后台任务,而无需自行定制开发和管理基于Windows Service后台任务执行器。且任务信息可以被持久保存。内置提供集成化的控制台。
通过Nuget就可以在你的应用程序中安装Hangfire:Install-Package Hangfire
需要环境:
Hangfire的具有如下特性和有点:
- 支持基于队列的任务处理:任务执行不是同步的,而是放到一个持久化队列中,以便马上把请求控制权返回给调用者。使用方法:BackgroundJob.Enqueue(() => Console.WriteLine("Simple!"));
- 延迟任务执行:不是马上调用方法,而是设定一个未来时间点再来执行。使用方法:BackgroundJob.Schedule(() => Console.WriteLine("Reliable!"), TimeSpan.FromDays(7));
- 循环任务执行:只需要简单的一行代码就可以添加重复执行的任务,其内置了常见的时间循环模式,也可以基于CRON表达式来设定复杂的模式。使用方法:RecurringJob.AddOrUpdate(() => Console.WriteLine("Transparent!"), Cron.Daily);
- 持久化保存任务、队列、统计信息:默认使用SQL Server,也可以配合消息队列来降低队列处理延迟,或配置使用Redis来获得更好的性能表现
- 内置自动重试机制:可以设定重试次数,还可以手动在控制台重启任务
- 除了调用静态方法外还支持实例方法
- 能够捕获多语言状态:即可以把调用者的Thread.CurrentCulture和Thread.CurrentUICulture信息同任务持久保存在一起,以便任务执行的时候多语言信息是一致的
- 支持任务取消:使用CancellationToken这样的机制来处理任务取消逻辑
- 支持IoC容器:目前支持Ninject和Autofac比较常用的开源IoC容器
- 支持Web集群:可以在一台或多台机器上运行多个Hangfire实例以便实现冗余备份
- 支持多队列:同一个Hangfire实例可以支持多个队列,以便更好的控制任务的执行方式
- 并发级别的控制:默认是处理器数量的5倍工作行程,当然也可以自己设定
- 具备很好的扩展性:有很多扩展点来控制持久存储方式、IoC容器支持等
文档:http://docs.hangfire.io/en/latest/
0 0
- 后台定时任务的利器Hangfire
- 执行后台任务的利器——Hangfire
- .NET Core开源组件:后台任务利器之Hangfire
- .NET Core开源组件:后台任务利器之Hangfire
- asp.net使用Hangfire开发后台定时任务demo
- MVC中集成Hangfire定时任务
- 后台执行的定时任务
- 后台执行的定时任务
- 后台执行的定时任务
- 后台劳动者--后台执行的定时任务
- 实现WEB站点的后台定时任务
- 【实战】后台执行的定时任务
- android后台执行的定时任务
- android: 后台执行的定时任务
- Android后台执行的定时任务
- Linux后台定时任务
- 后台工作者HangFire与ABP框架Abp.Hangfire及扩展
- Android后台执行定时任务
- Java中的线程
- libgdx: 2D Particle Editor工具使用
- html中offsetTop、clientTop、scrollTop、offsetTop各属性介绍
- fatal error C1047: The object or library file "..."was created with an older compiler than other obj
- SPOJ LCS2 Longest Common Substring II 后缀自动机
- 后台定时任务的利器Hangfire
- 安装其他Myeclipse插件后,SVN失效
- 点击DataGridView里面的某一个单元格的事件
- msmtp邮件转发工具,推送报错统计
- 手把手教你编写一个具有基本功能的shell
- C++学习笔记001-关于cin的几个用法
- iOS开发---SQL语句大全
- MYSQl 时间类型(简单应用)
- Android绘图-Paint、Canvas、Bitmap、BitmapFactory