一、Quartz.Net是什么?

Quartz.Net是一个定时任务框架

二、有Timer了,为什么需要用Quartz.Net?

Quartz.Net比Timer使用起来更灵活。例如:每个月最后一个星期天23:59分做什么事情,而Timer实现起来就会麻烦很多。

三、Quartz.Net怎么用?

《一、无配置实现》

1. 下载引用3个DLL:Quartz.dll、Common.Logging.dll、Common.Logging.Core.dll

下载地址:http://pan.baidu.com/s/1eRC5Iwi

2.创建任务操作类:

 public class TimingJob : IJob
{
public void Execute(IJobExecutionContext context)
{
//将要定时执行的逻辑代码写于此处
Console.WriteLine(DateTime.Now.ToString()+"\t工作太久了,休息10分钟吧。");
}
}

3.创建处理类、触发器类

 class Program
{
static void Main(string[] args)
{
ISchedulerFactory sf = new StdSchedulerFactory();
IScheduler scheduler = sf.GetScheduler(); //创建调度实例
//创建任务实例
IJobDetail job = JobBuilder.Create<TimingJob>().WithIdentity(new JobKey("job1")).Build();
//创建触发器实例
ITrigger trigger = TriggerBuilder.Create().StartAt(DateTime.Now.AddSeconds()).WithCronSchedule("59 59 23 ? * 1L ").Build();
scheduler.ScheduleJob(job, trigger); //绑定触发器和任务
scheduler.Start(); //启动监控
}
}

《二、通过配置文件实现》

1. 下载引用3个DLL:Quartz.dll、Common.Logging.dll、Common.Logging.Core.dll

下载地址:http://pan.baidu.com/s/1eRC5Iwi

2. 创建工作类:

 public class PrintTimeJob : IJob
{
public void Execute(IJobExecutionContext context)
{
Console.WriteLine(DateTime.Now.ToString()+"工作了很久,休息一会吧!");
}
}

3. 工作类、触发器类的配置文件(quartz_jobs.xml)

 <?xml version="1.0" encoding="utf-8" ?>
<job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0">
<processing-directives>
<overwrite-existing-data>true</overwrite-existing-data>
</processing-directives>
<schedule> <!--工作类配置-->
<job>
<name>PrintTimeJob</name>
<group>PrintGroup</group>
<description>RecyclingResourcesJob</description>
<job-type>SettingMothod.PrintTimeJob, SettingMothod</job-type>
<durable>true</durable>
<recover>false</recover>
</job>
<trigger> <!--触发器类配置-->
<cron>
<name>PrintDateTimeTrigger</name>
<group>PrintDateTimeTriggerGroup</group>
<job-name>PrintTimeJob</job-name>
<job-group>PrintGroup</job-group>
<cron-expression>59 59 23 ? * 1L </cron-expression> //
</cron>
</trigger>
</schedule>
</job-scheduling-data>

4.  设置配置文件(App.config)

 <?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="quartz" type="System.Configuration.NameValueSectionHandler"/>
</configSections>
<quartz>
<add key="quartz.scheduler.instanceName" value="ExampleDefaultQuartzScheduler"/>
<add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz"/>
<add key="quartz.threadPool.threadCount" value="10"/>
<add key="quartz.threadPool.threadPriority" value="2"/>
<add key="quartz.jobStore.misfireThreshold" value="60000"/>
<add key="quartz.jobStore.type" value="Quartz.Simpl.RAMJobStore, Quartz"/>
<!--******************************Plugin配置*********************************************-->
<add key="quartz.plugin.xml.type" value="Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin, Quartz" />
<add key="quartz.plugin.xml.fileNames" value="~/quartz_jobs.xml"/>
</quartz>
</configuration>

5. 实例化、启动任务调度。

 class Program
{
static void Main(string[] args)
{
ISchedulerFactory sf = new StdSchedulerFactory();
IScheduler sched = sf.GetScheduler(); //创建调度实例
sched.Start(); //开启调度
Console.WriteLine("启动成功 ");
Console.ReadKey();
}
}

初次写博客,不足之处请多多指教。

本文源码:http://pan.baidu.com/s/1qXS0vUG

Quartz.Net定时任务简单实用(实例)的更多相关文章

  1. SpringBoot定时任务 - 集成quartz实现定时任务(单实例和分布式两种方式)

    最为常用定时任务框架是Quartz,并且Spring也集成了Quartz的框架,Quartz不仅支持单实例方式还支持分布式方式.本文主要介绍Quartz,基础的Quartz的集成案例本,以及实现基于数 ...

  2. Linux中的定时任务简单操作实例

    今天,我怀着一颗感恩的心,写了一个小小的定时任务,细想还是写个简单的例子吧,希望能帮到你! 首先我在/usr/local/文件夹下创建了一个文件,hah.sh文件 在hah.sh里面编写shell脚本 ...

  3. Ajax的简单实用实例

    我将实现一个简单的Ajax页面无刷新进行用户验证案例: 效果如下图:

  4. jackson的简单实用实例(json)

    一个json格式的字符串比如: {"status":10001,"code":"HDkGzI","pubkey":&qu ...

  5. python--Numpy简单实用实例

    # _*_ coding:utf-8 _*_ import numpy as np #创建数组 a=np.array([[1.,7.,0.],[-2.,1.,2.]]) print a #ndarra ...

  6. 简单实用的PHP防注入类实例

    这篇文章主要介绍了简单实用的PHP防注入类实例,以两个简单的防注入类为例介绍了PHP防注入的原理与技巧,对网站安全建设来说非常具有实用价值,需要的朋友可以参考下   本文实例讲述了简单实用的PHP防注 ...

  7. Spring+Quartz 实现定时任务的配置方法

    Spring+Quartz 实现定时任务的配置方法 整体介绍 一.Quartz介绍 在企业应用中,我们经常会碰到时间任务调度的需求,比如每天凌晨生成前天报表,每小时生成一次汇总数据等等.Quartz是 ...

  8. SpringBoot集成Quartz实现定时任务

    1 需求 在我的前后端分离的实验室管理项目中,有一个功能是学生状态统计.我的设计是按天统计每种状态的比例.为了便于计算,在每天0点,系统需要将学生的状态重置,并插入一条数据作为一天的开始状态.另外,考 ...

  9. C#_简单实用的翻页

    简单实用的生成翻页HTML辅助类 C# using System.Text; namespace ClassLibrary { /// <summary> /// /// </sum ...

随机推荐

  1. “全栈2019”Java第六章:注释

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  2. Java面试必问

    1. 图灵 1.1 聊聊哈希算法与HashMap 1)一个优秀的哈希算法有什么特点? 快速.不可逆.敏感性.低碰撞性 2)自己写一个Hash算法 取模 3)Java中的Hash算法 HashMap,侧 ...

  3. codeforces785E

    http://codeforces.com/contest/785/problem/E 一道经典的求逆序对的题目,可以用树状数组套平衡树解决 平衡树需要支持插入一个数,删除一个数,找比 x 小的数的个 ...

  4. STR[#6]

    photo 小明在旅游的路上看到了一条美丽的河,河上有许多船只,有的船只向左航行,有的船只向右航行.小明希望拍下这一美丽的风景,并且把尽可能多的船只都完整地拍到一张照片中. 小明位于河的边上,并且可以 ...

  5. mySQL授权(让从服务器用户可以登录到主服务器)

    mySQL授权(让从服务器用户可以登录到主服务器) 1.查看用户授权表 ? 1 select user,host,password from mysql.user; 2.给用户设置密码 ? 1 2 u ...

  6. iOS hook原理

    OC中的method其实是一个结构体 struct objc_method{ SEL method_name char *method_types IMP method_imp } SEL是方法名,I ...

  7. java使用freemarker导出复杂的excel表格

    正常导出excel表格使用的poi,但是导出复杂的excel有点困难,但是可以使用freemaker模板来导出复杂的excel. 1.都是先生成一个Excel表格的模板,最好是增加一行数据.具体看图里 ...

  8. 2016级算法第四次上机-E.Bamboo and the Ancient Spell

    Bamboo and the Ancient Spell 分析 可能英文读题难度比较大,但是只要看到全大写的 "THE LONGEST COMMON SUBSEQUENCE !"应 ...

  9. css 命名规划

    命名规范 前言中略微描述了 CSS 怎么使用:下面介绍一下 CSS 的一些代码规范: CSS 命名一般采用小写英文单词或组合命名,单词与单词间以"-"分割:英文单词不缩写,除非一看 ...

  10. java面向对象概念1

    一.java面向对象学习的三条主线: 1.java类及类的成员:属性.方法.构造器:代码块.内部类 2.面向对象的三大特征:封装性.继承性.多态性.(抽象性) 3.其它关键字:this.super.s ...