一、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. Commons包详解

    Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.项目地址http://commons.apache.org/ Commons BeanUtils 提供 ...

  2. log(m+n)找第k大

    递归 int find_kth(vector<int>& nums1, int begin1, int size1, vector<int>& nums2, i ...

  3. DIOCP (一) DIOCP常见问题。

    1,IOCP是什么? 答:IOCP是windows下的服务器技术,并不是所有windows都能使用IOCP,只能在支持IOCP的windows操作系统上使用. 2,DIOCP是什么? 答:DIOCP是 ...

  4. python 图像识别

    这是一个最简单的图像识别,将图片加载后直接利用Python的一个识别引擎进行识别 将图片中的数字通过 pytesseract.image_to_string(image)识别后将结果存入到本地的txt ...

  5. “全栈2019”Java第六十七章:内部类、嵌套类详解

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

  6. php运行环境学习

    web服务器,负责响应客户端请求.对于静态页面请求,会立即返回相应页面给客户端:如果是动态页面,web服务器会根据 httpd.conf中的AddType配置,提交给合适的动态脚本解析程序预处理,然后 ...

  7. Jsp页面跳转和js控制页面跳转的几种方法

    Jsp 页面跳转的几种方法 1. RequestDispatcher.forward() 在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servle ...

  8. jquery将json数据放入表格当中

    数据: var datas = [{ name:"淘宝", url:"www.taobao.com", type:"购物网站" },{ na ...

  9. [原创] Laravel 启动流程

    目录 1. 程序启动准备 1.1 容器基础配置 1.2 核心类绑定 1.3 实例化 Http 核心类 2. 请求实例化 3. 请求处理 3.1 请求处理环境初始化 1. 环境监测 \Illuminat ...

  10. expect分发脚本

    [分发系统]yum -y install expect #!/usr/bin/expect set host "192.168.11.102" " spawn ssh r ...