任务调度是我们项目中常见的功能,任务调度的功能实现本身并不难,但是易用的轮子可以大大提高我们的开发效率。
在. net环境下,有名的任务调度框架是HangFire和Quartz.NET,这里主要介绍HangFire,提供比Quartz.NET更便于使用的页面,使用方便。 Hangfire的优点在网上有很多文章介绍,在这里简单列举一下:
支持各种常见任务类型
永久保存任务、队列和统计信息
重试机制
多语言支持
支持取消任务
支持指定的作业队列处理任务
服务器端工作线程的控制,也就是作业执行并发行数的控制
分布式部署、高可用性支持
卓越的可扩展性,包括IOC、Hangfire Dashboard许可证管理、Asp.net Core和永久存储
简单的使用方法:
这里介绍简单的演示. net core的基本使用方法。 首先,您可以创建一个. net core web项目,如果没有其他需要,可以使用空的项目模板。
1 .添加软件包:
安装软件包hang fire
2 .数据库配置:
Hangfire缺省支持sqlserver和redis,但也可以使用第三方扩展来支持sqlite等数据库。 这里我选择的是常用的sqlserver。
如果要将sqlserver用作存储引擎,则必须首先在sqlserver上创建数据库。 不制作表格也没关系。 Hangfire会自动创建表格。
3 .注册服务:
首先,在Startup.cs的ConfigureServices方法中注册服务。
services.addhangfire (r=r.usesqlserverstorage (' data source=192.168.18.130 ); Initial Catalog=HangfireDemo; User ID=sa; Password=abc123@ss ' );
然后,将HangfireServer和HangfireDashboard添加到Configure方法。
app.UseHangfireServer (;
app.UseHangfireDashboard (;
4 .任务配置
Hangfire提供了一系列接口配置任务,包括:
//基于队列的任务处理(第一和第二作业) )。
var jobId=BackgroundJob.Enqueue (
() ) console.writeline (' fire-and-forget!' );
//延迟任务的执行(Delayed jobs ) ) ) ) ) ) ) ) ) ) ) )。
var jobid=background job.schedule (
() ) console.writeline('delayed!' 请参阅。
TimeSpan.FromDays ();
//定时任务执行(Recurring jobs ) )。
RecurringJob.AddOrUpdate (
() ) console.writeline('recurring!' 请参阅。
Cron.Daily;
//连续任务执行(Continuations ) )。
RecurringJob.AddOrUpdate (
() ) console.writeline('recurring!' 请参阅。
Cron.Daily;
这些任务被配置为服务。 要动态配置任务,只需让服务提供接口即可。
缺点
最后,让我简单谈谈Hangfire的缺点。 另一个受欢迎的任务调度框架是Quartz.net,它与Hangfire相比具有以下优点:
虽然支持秒定时任务处理,但Hangfire只支持分钟或更长的定时任务处理
更复杂的触发器、日历和任务调度处理
可配置的计划任务
其中Hangfire最大的缺点可能是第一条。 虽然任务的执行时间精度不够高,但在大多数APP场景中,这不是大问题。
参照报道
这里是简单的入门,想了解更多的话请参考以下文章
任务调度框架fluent计划器概述
以前在文章中介绍过的. net的任务调度框架Hangfire,虽然Hangfire本身的输入比较简单,使用方便,但是我们的程序本身提供的服务不是任务调度,任务调度是其中不重要的小功能.
开放源代码期间; NET任务调度框架-HangFire
Hangfire Hangfire是一种开源. NET任务调度框架,当前版本1.6支持. NET Core。 内置集成控制台,便于在后台查看和监控。 另外,Hangfi
re包含三大核心组 ....NET Core下开源任务调度框架Hangfire的Api任务拓展(支持秒级任务)
HangFire的拓展和使用 看了很多博客,cqdggx第一次写博客. 最近由于之前的任务调度框架总出现问题,因此想寻找一个替代品,之前使用的是Quartz.Net,这个框架方便之处就是支持cron表达式适合 ...
.NET Core下开源任务调度框架Hangfire
今天无意中发现了一个很好用的任务调度框架.Hangfire作为一款高人气且容易上手的分布式后台执行服务,支持多种数据库.在 .net core的环境中,由Core自带的DI管理着生命周期. 相较于qu ...
【niubi-job——一个分布式的任务调度框架】----niubi-job这下更牛逼了!
niubi-job迎来第一次重大优化 niubi-job是一款专门针对定时任务所设计的分布式任务调度框架,它可以进行动态发布任务,并且有超高的可用性保证. 有多少人半夜被叫起来查BUG,结果差到最后发 ...
【niubi-job——一个分布式的任务调度框架】----安装教程
niubi-job是什么 niubi-job是dsw耗时三个星期,费尽心血打造的一个具备高可靠性以及水平扩展能力的分布式任务调度框架,采用quartz作为底层的任务调度管理器,zookeeper做集群的 ...
Quarzt.NET 任务调度框架
Quartz.NET是一个开源的作业调度框架,是 OpenSymphony 的 Quartz API 的.NET移植,它用C#写成,可用于winform和asp.net应用中.它提供了巨大的灵活性 ...
Quartz.Net任务调度框架
Quartz.Net是一个开源的任务调度框架,非常强大,能够通过简单的配置帮助我们定时具体的操作. 相对于我们用的线程里面while(true)然后sleep来执行某个操作,应该算的上是高端,大气,上 ...
DWZ富客户端框架+DWZ简介及其使用+DWZ讨论组
DWZ富客户端框架+DWZ简介及其使用+DWZ讨论组 地址: DWZ富客户端框架:http://jui.org/#_blank DWZ简介及其使用:http://blog.sina.com.cn/s/ ...
随机推荐
Yeelink 初探
Yeelink可以作为中转服务器使用,在自己没有服务器的情况下,可以利用它传输自己的数据. 首先去申请一个帐号,然后添加一个设备. http://www.yeelink.net/user 在这里是用户 ...
window.showModalDialog返回值和window.open返回值实例详解
最近在谷歌浏览器下发现一个问题,就是使用谷歌浏览器已经不兼容window.showModalDialog了,所以还是改成使用window.open(). 一.window.showModalDialo ...
windows phone Datepicker Timepicker
选择程序包管理器控制台 在PM后输入Install-Package WPtoolkit可自动下载 PM> Install-Package WPtoolkit 在xaml中添加引用 xmlns:t ...
DIV的摇晃效果---jquery实现
DIV的摇晃效果---jquery实现 quo ...
Volly框架的使用基础版及使用中的一些坑 Ace 网络篇(三)
直接把注释粘过来: * Volley使用讲解: * 要实现网络数据请求主要要记住下面三步骤: * 1.创建RequestQueue对象 * 2.创建XXRequest对象(XX代表String,JSO ...
sql语句 面试题
ql语句 面试题 自动编号 学号 姓名 课程编号 课程名称 分数 1 2005001 天真的小兔子 0001 数学 69 2 2005002 tldlb ...
OpenGL 茶壶
void MyRenderer::Init_Teapot_VBO() { m_fun->glGenBuffers(, &m_teapot_vbo); m_fun->glBindBu ...
Ajax 基础笔记
Ajax内容: 同步交互与异步交互 同步交互:客户端向服务器端发送请求,服务器端向客户端进行响应,这个过程中客户端不能做其他事情 异步交互:客户端向服务器端发送请求,服务器端向客户端进行响应,这个过程 ...
hdu-3071 Gcd &; Lcm game---质因数分解+状态压缩+线段树
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3071 题目大意: 给定一个长度为n的序列m次操作,操作的种类一共有三种 查询 L :查询一个区间的所 ...
Windows Server(r12) - 配置 MySQL 远程访问
Windows Server(r12) - 配置 MySQL 远程访问 工作主要为两部分, 一部分是 Windows 防火墙, 一部分是 MySQL 自身 Windows 端口远程访问 其实就是在 W ...