原文由Rector首发于 码友网 之 《C#/.NET/.NET Core应用程序编程中实现定时任务调度的方法或者组件有哪些,Timer,FluentScheduler,TaskScheduler,Gofer.NET,Coravel,Quartz.NET仍是Hangfire》html
C#/.NET/.NET Core的定时任务调度组件你用过那些呢,是Timer
,FluentScheduler
,TaskScheduler
,Gofer.NET
,Coravel
,Quartz.NET
仍是Hangfire
,又或者是其余的定时任务调度框架/组件呢?你经常使用的实现定时任务调度的方法又是怎样的呢?git
定时任务,任务调度这些词在程序开发中会被常常说起。定时任务是什么?在计算机的世界里,定时任务就是在指定的时间或者时间范围内,按照必定的频率完成指定的指令。它是一个具备周期性,规律性的活动。github
定时任务能够是:早上按时叫你起床的闹钟,记录并提醒你日程的日历或者生日问候,某网站定时给你的周刊、月刊消息推送,某系统周期性作的每日、月度、年度数据汇总,等等。web
因而可知,定时任务与咱们的生活、工做紧密联系在一块儿。特别地,对于咱们开发人员来讲,但凡要实现周期性地操做,就须要使用定时任务来处理。数据库
那么,对于C#/.NET开发人员来讲,如何实现定时任务,实现定时任务又有哪些方法或者有哪些组件呢?这些问题对于从事C#/.NET的开发者,特别是刚入行不久或者经验欠缺者来讲将会是比较困扰的问题。编程
今天Rector就收集整理一些C#/.NET/.NET Core应用程序编程开发中经常使用的实现定时任务调度的方法或者定时任务调度组件。api
Timer是.NET内置的定时器类,它位于命名空间System.Timers
下。Timer是一个基于服务器端的计时器,提供了Interval
属性来设置重复触发定时任务的间隔(单位为毫秒),触发事件则由Elapsed
事件来指定。另外,还能够经过AutoReset
属性来设置Timer的Elapsed
事件只触发一次或者重复触发。缓存
官方地址: https://docs.microsoft.com/en-us/dotnet/api/system.timers.timer?view=netframework-4.8服务器
特性mvc
FluentScheduler是由一位巴西的.NET开发者**Talles L开发并维护的.NET平台下的一款自动定时任务调度器组件,它提供了比较丰富的定时任务调度接口,开发者能够快速方便地经过接口设置调度时间,好比:间隔1秒,2秒...n秒,只执行一次,哪月的哪一天等等。具体请参考我以前写过的两篇关于FluentScheduler**的文章:
官方地址: https://github.com/fluentscheduler/FluentScheduler
特性
TaskScheduler是一个为Windows任务调度程序提供.NET的封装组件,能够代替Windows操做系统自带的定时任务使用,提供了代码和编辑器两种方式建立定时任务。它聚合了多个版本,并提供编辑调度编辑器以快速建立定时任务。
官方地址: https://github.com/dahall/TaskScheduler
特性
Gofer.NET是支持分布式的任务/做业调度组件,能够运行在.NET Core应用程序中。
官方地址: https://github.com/brthor/Gofer.NET
特性
Coravel是一个零配置的基于.NET标准库的微组件,它包含了定时任务调度,缓存,队列,事件广播等等功能。
官方地址: https://docs.coravel.net/Scheduler/
Quartz.NET是一个开源的定时做业调度项目,旨在建立一个免费商业使用的做业调度器,同时具备“企业级”的特性。Quartz.NET目前的版本是支持跨平台的,即支持.NET和.NET Core的应用程序。
官方地址: http://www.quartz-scheduler.net/
特性
具体使用可参考《基于ASP.NET MVC(C#)和Quartz.Net组件实现的定时执行任务调度》
Hangfire是一个支持.NET和.NET Core应用程序的跨平台的后台做业处理框架,使用Hangfire时再也不须要Windows服务或者单独的进程。Hangfire能够在ASP.NET/ASP.NET Core等应用程序中以简单的方式实现触发,延迟以及定时执行等任务。同时还支持CPU和I/O密集型、长时间运行和短期运行的做业而不须要设置Windows服务或者其余的任务调度。Hangfire支持多种数据存储方式,如:Redis, SQL Server, SQL Azure和MSMQ等。
官方地址: https://www.hangfire.io
特性
本文旨在为你们收集整理.NET/.NET Core中经常使用的定时任务框架和组件,但愿对你有帮助。
若是你还有其余的或者更好的框架/组件,欢迎留言反馈。
码友网:一个专一.NET/.NET Core开发的编程爱好者社区
原文出处:https://www.cnblogs.com/bobositlife/p/what-are-the-task-scheduler-solutions-in-dotnet-csharp-application.html