一、概述

  Quartz.NET是一个强大、开源、轻量的作业调度框架,是 OpenSymphony 的 Quartz API 的.NET移植,用C#改写,可用于winform和asp.net应用中。它灵活而不复杂。你能够用它来为执行一个作业而创建简单的或复杂的作业调度。它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。

  通俗说它的功能是:比如说我想每天晚上2点让程序或网站执行某些代码,或者每隔5秒种我想查看是否有新的任务要处理等。

官网:http://www.quartz-scheduler.net/

源码:https://github.com/quartznet/quartznet

示例:http://www.quartz-scheduler.net/documentation/quartz-2.x/quick-start.html

  其实Quartz是一个完全由java编写的开源作业调度框架,Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。而Quartz.Net与NPOI一样是一个DoNet平台下的对应版本。如果您使用Java直接访问这里就好了http://www.quartz-scheduler.org/

二、依赖框架

  引入框架的方法非常简单你可以直接用nuget管理包,也可以在项目中添加引用,这里主要介绍前者。

2.1 安装Nuget

  新版本的Visual Studio默认情况是安装了Nuget的,如Visual Studio2015,但如果没有安装,打开VS菜单“工具”->"扩展与更新"

Quartz.Net学习笔记 

  在扩展与更新中搜索“nuget”,可以新安装或卸载后升级:

Quartz.Net学习笔记

2.2 修改Nuget镜像

  为解决国内访问NuGet服务器速度不稳定的问题建议你最好选择一些镜像服务器,这样可以加速下载。

  在Visual Studio中的添加方法是:打开“工具”->“选项”菜单

Quartz.Net学习笔记 

  在左侧菜单中找到“NuGet包管理器”

 Quartz.Net学习笔记

  点击右上角的加号,添加两个镜像,这些地址可以上网搜索,我使用的是如下两个:

https://nuget.cnblogs.com/v3/index.json

http://api.nuget.org/v3/index.json

设置一下顺序就OK了。

2.3 使用nuget安装Quartz.NET

  点击“工具”->"NuGet包管理器"->“程序包管理器控制台”

 Quartz.Net学习笔记

输入安装包的命令:

Install-Package Quartz

安装结果如下:

Quartz.Net学习笔记

  此时包管理器中就下载了需要的程序集与相关文件,程序中也添加了引用。

Quartz.Net学习笔记

三、框架应用

3.1 定义要执行的任务

  定义一个类,实现Quartz.IJob接口,实现方法Execute,TimeJob.cs文件的代码如下:

 1 using System;
 2 using System.Threading.Tasks;
 3 using Quartz;
 4 using System.IO;
 5  
 6 namespace QuartzDoNetDemo
 7 {
 8     /// <summary>
 9     /// 文件记时任务
10     /// </summary>
11     public class TimeJob : IJob
12     {
13         /// <summary>
14         /// 文件记时任务
15         /// </summary>
16         /// <param name="context"></param>
17         /// <returns></returns>
18         Task IJob.Execute(IJobExecutionContext context)
19         {
20 
21             //方式一
22             //Environment:提供有关当前环境和平台的信息以及操作它们的方法
23             //File.AppendAllText(@"d:\Quartz.txt", DateTime.Now + Environment.NewLine);
24             //return Task.Run(() => Console.WriteLine(DateTime.Now));
25 
26             //方式二
27             File.AppendAllText(@"d:\Quartz.txt", DateTime.Now + Environment.NewLine);
28             Console.WriteLine(DateTime.Now);
29             return Task.FromResult(true);
30         }
31     }
32 }
View Code

相关文章:

  • 2022-12-23
  • 2022-03-03
  • 2021-11-15
  • 2022-12-23
  • 2022-01-06
  • 2021-06-24
  • 2021-12-02
猜你喜欢
  • 2021-05-22
  • 2022-01-05
  • 2021-05-16
  • 2021-10-07
  • 2021-08-10
  • 2021-11-06
相关资源
相似解决方案