定时任务Quartz
一.需求场景
我们在日常开发中,总会遇到这样的需求:
1.每隔一段时间,执行一次某个任务。
2.固定某个时间执行任务,例如凌晨12点对当天的数据进行统计。
3.每个月的第几天,执行某个任务。
诸如此类的需求很多,我们总不能人工去干这件事吧 ?所以我们需要引入作业调度工具,也就是今天的主角——Quartz。
二.Quartz基本介绍
2.1Quartz概述
Quartz 是 OpenSymphony 开源组织在任务调度领域的一个开源项目,完全基于 Java 实现。该项目于 2009 年被 Terracotta 收购,目前是 Terracotta 旗下的一个项目。读者可以到 http://www.quartz-scheduler.org/站点下载 Quartz 的发布版本及其源代码。
2.2Quartz概述
作为一个优秀的开源调度框架,Quartz 具有以下特点:
1.强大的调度功能,例如支持丰富多样的调度方法,可以满足各种常规及特殊需求;
2.灵活的应用方式,例如支持任务和调度的多种组合方式,支持调度数据的多种存储方式;
3.分布式和集群能力,Terracotta 收购后在原来功能基础上作了进一步提升。
三.使用Quartz
此次我将建立一个.net Core 3.1 MVC项目进行演示
1、NuGet引入Quartz,目前为止Quartz的最新版本为3.0.7。
2、注册ISchedulerFactory的实例。
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<ISchedulerFactory, StdSchedulerFactory>();
}
3.创建作业(需继承IJob接口)
public class