Quartz.NET快速入门指南

 最近工作中遇到了Quartz.net,为了更好的理解公司代码的写法,于是就好好的研究了一下这个东西,确实是好东西,既然是好东西,我就拿出来分享一下。万丈高楼平地起,我们也是从入门开始吧。


    欢迎使用Quartz.NET快速入门指南。 在阅读本指南时,希望看到以下详细信息:

         1、下载Quartz.NET

         2、安装Quartz.NET

         3、根据您自己的特定需求配置Quartz

         4、开始示例应用程序


一、下载并安装

    您可以直接下载zip文件或使用NuGet包来获取文件。但是二者是有区别的,NuGet包只包含运行Quartz.NET所需的二进制文件,Zip文件就不一样了,包含源代码、示例和Quartz.NET服务器示例应用程序。

    Zip文件

    简短版本:如果你成功下载了Quartz.NET压缩包文件,只要将ZIP文件解压,从bin目录中获取Quartz.dll文件,就可以开始使用它了。

    Quartz核心库是一个非常干净和独立的类库,不会强行依赖于任何的其他二进制文件。 如果您想使用JSON.NET的进行JSON序列化时,您可以根据需要选择加入更多依赖项。同时您只要保证在应用程序中包含了Quartz.dll文件就可以成功运行Quartz.NET,也会和其他的二进制文件相处融洽。 因此,只需将Quartz.dll文件添加到使用它们的Visual Studio项目中就可以安全运行。 您可以从路径bin \ your-target-framework-version \ release \ Quartz中提取的存档中找到这些dll。

二、NuGet包

    没有比这种方法更简单的做法了,只需启动Visual Studio(安装了NuGet)并从包管理器扩展中添加对Quartz包的引用:

         1、右键单击项目的“引用”(References),然后选择“管理 NuGet 程序包(N)”(Manage NuGet Packages(N)) ...
         2、从左侧选择“浏览or在线”类别
         3、在左上方的搜索中输入Quartz,然后按Enter键
         4、从搜索结果中选择Quartz.NET并点击安装
         5、完成!

    或者使用NuGet的命令行来安装:

    Install-Package Quartz


    如果要添加JSON序列化,只需以相同的方式添加Quartz.Serialization.Json包。

三、配置

    这是大有点! Quartz.NET是一个支持高度可配置的库。Quartz.NET提供三种的配置信息的方式(不相互排斥):

        1、以编程方式通过向调度程序工厂提供NameValueCollection参数
        2、通过使用quartz-element的标准youapp.exe.config配置文件(仅限完整的.NET框架)
        3、应用程序根目录中的quartz.config文件(适用于.NET Core和完整的.NET Framework)

    您可以在Quartz.NET zip文件中找到所有这些替代品的样本。

    Quartz Configuration Reference中提供了可用属性的完整文档。

    为了快速启动和运行,提供了基本的quartz.config的配置文件看起来应该像这样:

复制代码
    quartz.scheduler.instanceName = MyScheduler     quartz.jobStore.type = Quartz.Simpl.RAMJobStore,Quartz     quartz.threadPool.threadCount = 3
复制代码

    请记住在Visual Studio的文件属性页上设置“复制到输出目录”以使值始终为“复制”。否则,如果配置不在构建目录中,则不会看到该配置。

    此配置创建的调度程序具有以下特征:

        quartz.scheduler.instanceName - 此调度程序的名称将为“MyScheduler”。
        quartz.threadPool.threadCount - 最多可同时运行3个作业。
        quartz.jobStore.type - 所有Quartz的数据,例如作业和触发器的详细信息,都保存在内存中(而不是数据库中)。即使你有一个数据库并希望在Quartz中使用它,我建议你在使用数据库打开一个全新的维度之前让Quartz使用RamJobStore。

    实际上,如果你不想定义这些属性,Quartz.NET会提供合理的默认值

四、先来一个简单的实例程序

    现在您已经下载并安装了Quartz,现在是时候启动并运行一个示例应用程序了。 以下代码获取调度程序的实例,启动它,然后将其关闭:

复制代码
 1     using System;  2     using System.Threading.Tasks;  3  4     using Quartz;  5     using Quartz.Impl;  6  7     namespace QuartzSampleApp  8     {  9         public class Program 10         { 11             private static void Main(string[] args) 12             { 13                 // trigger async evaluation14                 RunProgram().GetAwaiter().GetResult(); 15             } 16 17             private static async Task RunProgram() 18             { 19                 try20                 { 21                     // 从Factory获取Scheduler实例22                     NameValueCollection props = new NameValueCollection 23                     { 24                         { "quartz.serializer.type", "binary" } 

                    
                
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信