一、Quartz.NET介绍
Quartz.NET是一个强大、开源、轻量的作业调度框架,是 OpenSymphony 的 Quartz API 的.NET移植,用C#改写,可用于winform和asp.net mvc、.Net Core应用中。它灵活而不复杂。你能够用它来为执行一个作业而创建简单的或复杂的作业调度。它有很多特征,如: 数据库支持,集群,插件,支持cron-like表达式等等。官网:http://www.quartz-scheduler.net/
源码:https://github.com/quartznet/quartznet
二、Quartz.NET用途
一,可以定时发邮件通知。
二 , 电商网站的定时打折活动。(比如规定11月11日 淘宝购买女朋友打八折)
三, 定时对数据更新 或者添加。
四,自己朋友生日。 可以定时发生日祝福。 等等 (我也不一一举例了)
三、Quartz.NET安装
我使用的VS版本是2017的 选择工具 - NuGet包管理 - 管理解决方案的NuGet包 输入 Quartz.NET 安装
还可以通过NuGet控制台 通过安装命令
Install-Package Quartz
四、Quartz.NET实现思路
一:继承并实现IJob接口,在Execute 方法中写你要定时执行的事情(切记 )
二:使用Quartz创建任务调度核心代码步骤
1、配置Quartz,创建工厂,开启调度。
2、创建工作任务
3、创建触发器
4、将任务加入到任务池
三:添加任务,使用Topshelf部署Windows服务,定时执行
五、代码步骤讲解
一:继承并实现IJob接口,在Execute 方法中写你要做的事情(切记 )
1 using Quartz.Utility; 2 using System; 3 using System.IO; 4 using System.Threading.Tasks; 5 6 namespace Quartz.JobWork 7 { 8 public class MyJob : IJob 9 { 10 public Task Execute(IJobExecutionContext context) 11 { 12 Task task = null; 13 try 14 { 15 string fileName = "printlog.txt"; 16 StreamWriter writer = new StreamWriter(fileName, true); 17 task = writer.WriteLineAsync(string.Format("{0},测试", DateTime.Now.ToLongTimeString())); 18 writer.Close(); 19 writer.Dispose(); 20 } 21 catch (Exception ex) 22 { 23 LogHelper.WriteLog(ex.Message.ToString(), ex); 24 } 25 return task; 26 } 27 } 28 }
二:使用Quartz创建任务调度核心代码步骤
<