C#/.NET/.NET Core的定时任务调度组件:Timer、FluentScheduler、TaskScheduler、Gofer.NET、Coravel、Quartz.NET、Hangfire。
Timer类
Timer是.NET内置的定时器类,它位于命名空间System.Timers下。
Timer是一个基于服务器端的计时器,提供了Interval属性来设置重复触发定时任务的间隔(单位为毫秒),触发事件则由Elapsed事件来指定。
另外,还可以通过AutoReset属性来设置Timer的Elapsed事件只触发一次或者重复触发。
特性
· 轻量,简单易用
· .NET框架内置,无须引用第三方库
· 不支持Cron表达式
FluentScheduler
FluentScheduler是由一位巴西的.NET开发者Talles L开发并维护的.NET平台下的一款自动定时任务调度器组件,它提供了比较丰富的定时任务调度接口,开发者可以快速方便地通过接口设置调度时间,比如:间隔1秒,2秒…n秒,只执行一次,哪月的哪一天等等。
官方地址: https://github.com/fluentscheduler/FluentScheduler
特性
提供丰富的任务调度接口,配置方便。
TaskScheduler
TaskScheduler是一个为Windows任务调度程序提供.NET的封装组件,可以代替Windows操作系统自带的定时任务使用,提供了代码和编辑器两种方式创建定时任务。
它聚合了多个版本,并提供编辑调度编辑器以快速创建定时任务。
官方地址: https://github.com/dahall/TaskScheduler
特性
· 支持.NET的多个版本(.NET 2.0, 3.5, 4.0, 4.52 and .NET Standard 2.0.)
· 支持包括脚本语言在内的所有.NET语言,比如(PowerShell)
· 支持所有的V2本地化属性,甚至在V1的系统中
· 支持序列化成XML
· 支持目标版本的任务验证
· 支持Cron表达式触发器
· 提供可视化的定时任务调度编辑器
· 提供动作编辑器,触发器编辑器,事件查看器,任务执行历史查看器等对话框
Gofer.NET
Gofer.NET是支持分布式的任务/作业调度组件,可以运行在.NET Core应用程序中。
官方地址: https://github.com/brthor/Gofer.NET
特性
· 使用通用表达式语法将作业添加到队列并执行
· 可简单地通过添加新节点来扩展任务工作池
· 在Redis的支持下,所有的任务都被持久化。
相关阅读 >>
c#/.net/.net core应用程序编程中实现定时任务调度的方法或者组件
更多相关阅读请进入《定时任务》频道 >>
C#高级编程(第11版) C# 7 & .NET Core 2.0(.NET开发经典名著)
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。