安装Quartz

已经先安装了2.5版本,现在换成2.4

程序包管理器控制台:

  1. PM> Install-Package Quartz -Version 2.4
  2. 正在尝试收集与目标为“.NETFramework,Version=v4.5.2”的项目“ConsoleApplication2”有关的包“Quartz.2.4.0”的依赖项信息
  3. 正在尝试解析程序包“Quartz.2.4.0”的依赖项,DependencyBehavior 为“Lowest
  4. 正在解析操作以安装程序包“Quartz.2.4.0
  5. 已解析操作以安装程序包“Quartz.2.4.0
  6. 已从“packages.config”中删除程序包“Quartz.2.5.0
  7. 已从 ConsoleApplication2 成功卸载“Quartz.2.5.0
  8. GET https://api.nuget.org/packages/quartz.2.4.0.nupkg
  9. OK https://api.nuget.org/packages/quartz.2.4.0.nupkg 136ms
  10. 正在安装 Quartz 2.4.0
  11. 正在将程序包“Quartz.2.4.0”添加到文件夹“D:\UserData\Administrator\Documents\Visual Studio 2015\Projects\ConsoleApplication2\packages
  12. 已将程序包“Quartz.2.4.0”添加到文件夹“D:\UserData\Administrator\Documents\Visual Studio 2015\Projects\ConsoleApplication2\packages
  13. 已将程序包“Quartz.2.4.0”添加到“packages.config
  14. 已将“Quartz 2.4.0”成功安装到 ConsoleApplication2
  15. 正在从文件夹“D:\UserData\Administrator\Documents\Visual Studio 2015\Projects\ConsoleApplication2\packages”中删除程序包“Quartz.2.5.0
  16. 已从文件夹“D:\UserData\Administrator\Documents\Visual Studio 2015\Projects\ConsoleApplication2\packages”中删除程序包“Quartz.2.5.0
  17. PM>
  1. using Quartz;
  2. using Quartz.Impl;
  3.  
  4. namespace ConsoleApplication2
  5. {
  6. public class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH;mm:ss:ffff"));
  11. //1.首先创建一个作业调度池
  12. ISchedulerFactory schedf = new StdSchedulerFactory();
  13. IScheduler sched = schedf.GetScheduler();
  14. //2.创建出来一个具体的作业
  15. IJobDetail job = JobBuilder.Create<JobDemo>().Build();
  16. //3.创建并配置一个触发器
  17. ISimpleTrigger trigger = (ISimpleTrigger)TriggerBuilder.Create().WithSimpleSchedule(x => x.WithIntervalInSeconds(3).WithRepeatCount(int.MaxValue)).Build();
  18. //4.加入作业调度池中
  19. sched.ScheduleJob(job, trigger);
  20. //5.开始运行
  21. sched.Start();
  22. Console.ReadKey();
  23. }
  24. }
  25.  
  26. public class JobDemo : IJob
  27. {
  28. /// <summary>
  29. /// 这里是作业调度每次定时执行方法
  30. /// </summary>
  31. /// <param name="context"></param>
  32. public void Execute(IJobExecutionContext context)
  33. {
  34. Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH;mm:ss:ffff"));
  35. }
  36. }
  37. }

设置一个运行时间范围:

  1. using Quartz;
  2. using Quartz.Impl;
  3.  
  4. namespace ConsoleApplication2
  5. {
  6. public class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH;mm:ss:ffff"));
  11. //1.首先创建一个作业调度池
  12. ISchedulerFactory schedf = new StdSchedulerFactory();
  13. IScheduler sched = schedf.GetScheduler();
  14. //创建出来一个具体的作业
  15. IJobDetail job = JobBuilder.Create<JobDemo>().Build();
  16. //NextGivenSecondDate:如果第一个参数为null则表名当前时间往后推迟2秒的时间点。
  17. DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddSeconds(1), 2);
  18. DateTimeOffset endTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddSeconds (30), 3);
  19. //创建并配置一个触发器
  20. ISimpleTrigger trigger = (ISimpleTrigger)TriggerBuilder.Create().StartAt(startTime).EndAt(endTime)
  21. .WithSimpleSchedule(x => x.WithIntervalInSeconds(3).WithRepeatCount(100))
  22. .Build();
  23. //加入作业调度池中
  24. sched.ScheduleJob(job, trigger);
  25. //开始运行
  26. sched.Start();
  27. Console.ReadKey();
  28. }
  29. }
  30.  
  31. public class JobDemo : IJob
  32. {
  33. /// <summary>
  34. /// 这里是作业调度每次定时执行方法
  35. /// </summary>
  36. /// <param name="context"></param>
  37. public void Execute(IJobExecutionContext context)
  38. {
  39. Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH;mm:ss:ffff"));
  40. }
  41. }
  42. }
  1. 2017-03-14 09;39:48:5435
  2. 2017-03-14 09;39:50:0116
  3. 2017-03-14 09;39:53:0008
  4. 2017-03-14 09;39:56:0009
  5. 2017-03-14 09;39:59:0001
  6. 2017-03-14 09;40:02:0003
  7. 2017-03-14 09;40:05:0005
  8. 2017-03-14 09;40:08:0006
  9. 2017-03-14 09;40:11:0008
  10. 2017-03-14 09;40:14:0000
  11. 2017-03-14 09;40:17:0002
  12. 2017-03-14 09;40:20:0003

一共就执行了30秒,11次,本来是要执行100次的,但是时间到了。

复杂的调用,Cron表达式调用

查看3分钟之内,每分钟的第1秒,10秒,15,30,45,55秒执行作业。

  1. using Quartz;
  2. using Quartz.Impl;
  3.  
  4. namespace ConsoleApplication2
  5. {
  6. public class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH;mm:ss:ffff"));
  11. //1.首先创建一个作业调度池
  12. ISchedulerFactory schedf = new StdSchedulerFactory();
  13. IScheduler sched = schedf.GetScheduler();
  14. //创建出来一个具体的作业
  15. IJobDetail job = JobBuilder.Create<JobDemo>().Build();
  16. //NextGivenSecondDate:如果第一个参数为null则表名当前时间往后推迟2秒的时间点。
  17. DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddSeconds(1), 2);
  18. DateTimeOffset endTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddMinutes(3), 3);
  19. //创建并配置一个触发器
  20. ICronTrigger trigger = (ICronTrigger)TriggerBuilder.Create().StartAt(startTime).EndAt(endTime)
  21. .WithCronSchedule("1,10,15,30,45,55 * * * * ? ")
  22. .Build();
  23. //加入作业调度池中
  24. sched.ScheduleJob(job, trigger);
  25. //开始运行
  26. sched.Start();
  27. Console.ReadKey();
  28. }
  29. }
  30.  
  31. public class JobDemo : IJob
  32. {
  33. /// <summary>
  34. /// 这里是作业调度每次定时执行方法
  35. /// </summary>
  36. /// <param name="context"></param>
  37. public void Execute(IJobExecutionContext context)
  38. {
  39. Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH;mm:ss:ffff"));
  40. }
  41. }
  42. }
  1. 2017-03-14 09;50:04:3347
  2. 2017-03-14 09;50:10:0101
  3. 2017-03-14 09;50:15:0004
  4. 2017-03-14 09;50:30:0002
  5. 2017-03-14 09;50:45:0001
  6. 2017-03-14 09;50:55:0006
  7. 2017-03-14 09;51:01:0000
  8. 2017-03-14 09;51:10:0005
  9. 2017-03-14 09;51:15:0008
  10. 2017-03-14 09;51:30:0006
  11. 2017-03-14 09;51:45:0005
  12. 2017-03-14 09;51:55:0001
  13. 2017-03-14 09;52:01:0004
  14. 2017-03-14 09;52:10:0009
  15. 2017-03-14 09;52:15:0002
  16. 2017-03-14 09;52:30:0001
  17. 2017-03-14 09;52:45:0009
  18. 2017-03-14 09;52:55:0005
  19. 2017-03-14 09;53:01:0008

http://www.cnblogs.com/knowledgesea/p/4930469.html

http://www.cnblogs.com/mushroom/p/4067037.html

Net Quartz使用的更多相关文章

  1. 免费开源的DotNet任务调度组件Quartz.NET(.NET组件介绍之五)

    很多的软件项目中都会使用到定时任务.定时轮询数据库同步,定时邮件通知等功能..NET Framework具有“内置”定时器功能,通过System.Timers.Timer类.在使用Timer类需要面对 ...

  2. Quartz

    Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中.它提供了巨大的灵 活性而不牺牲简单性.你能够用它来为执行一个作业而创建简单的或复杂的调度. eg: ja ...

  3. Spring Quartz实现任务调度

    任务调度 在企业级应用中,经常会制定一些"计划任务",即在某个时间点做某件事情 核心是以时间为关注点,即在一个特定的时间点,系统执行指定的一个操作 任务调度涉及多线程并发.线程池维 ...

  4. topshelf和quartz内部分享

    阅读目录: 介绍 基础用法 调试及安装 可选配置 多实例支持及相关资料 quartz.net 上月在公司内部的一次分享,现把PPT及部分交流内容整理成博客. 介绍 topshelf是创建windows ...

  5. Quartz.net持久化与集群部署开发详解

    序言 我前边有几篇文章有介绍过quartz的基本使用语法与类库.但是他的执行计划都是被写在本地的xml文件中.无法做集群部署,我让它看起来脆弱不堪,那是我的罪过. 但是quart.net是经过许多大项 ...

  6. Quartz.net开源作业调度框架使用详解

    前言 quartz.net作业调度框架是伟大组织OpenSymphony开发的quartz scheduler项目的.net延伸移植版本.支持 cron-like表达式,集群,数据库.功能性能强大更不 ...

  7. quartz.net 时间表达式----- Cron表达式详解

    序言 Cron表达式:就是用简单的xxoo符号按照一定的规则,就能把各种时间维度表达的淋漓尽致,无所不在其中,然后在用来做任务调度(定时服务)的quart.net中所认知执行,可想而知这是多么的天衣无 ...

  8. Quartz.NET Windows 服务示例

    想必大家在项目中处理简单的后台持续任务或者定时触发任务的时候均使用 Thread 或者 Task 来完成,但是项目中的这种需求一旦多了的话就得将任务调度引入进来了,那今天就简单的介绍一下 Quartz ...

  9. [Quartz笔记]玩转定时调度

    简介 Quartz是什么? Quartz是一个特性丰富的.开源的作业调度框架.它可以集成到任何Java应用. 使用它,你可以非常轻松的实现定时任务的调度执行. Quartz的应用场景 场景1:提醒和告 ...

  10. 关于Quartz.NET作业调度框架的一点小小的封装,实现伪AOP写LOG功能

    Quartz.NET是一个非常强大的作业调度框架,适用于各种定时执行的业务处理等,类似于WINDOWS自带的任务计划程序,其中运用Cron表达式来实现各种定时触发条件是我认为最为惊喜的地方. Quar ...

随机推荐

  1. java基础---->多个排序的拓展

    根据一些特定的规则,我们可以利用java的反射机制做到很有趣的封装. java的排序封装 一.定义一些comparator AmountComparatorAsc:amount升序 package c ...

  2. MQTT协议笔记之连接和心跳

    前言 本篇会把连接(CONNECT).心跳(PINGREQ/PINGRESP).确认(CONNACK).断开连接(DISCONNECT)和在一起. CONNECT 像前面所说,MQTT有关字符串部分采 ...

  3. 关于VO、PO的理解——java的(PO,VO,TO,BO,DAO,POJO)解释

    O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写.通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据. 在O/R Mapping的世界里,有 ...

  4. CCNP

    CCNP全称是:Cisco Certified Network Professional——思科认证网络高级工程师.CCNP专业人员表示通过认证的人员具有丰富的网络知识.获得CCNP认证的专业人员可以 ...

  5. [UML]UML 教程

    统一建模语言(UML)已经迅速变成建立面向对象软件的事实标准.本教程提供了Enterprise Architect支持的13种UML图的技术概览.UML 2 详细的语义解释请看新的UML 2 教程. ...

  6. 几行小代码,将Testlink的xml用例导入至excel

    最近在使用Testlink时,发现导入的用例是xml格式,且没有合适的工具转成excel格式,xml使用excel打开显示的东西也太多,网上也有相关工具转成csv格式的,结果也不合人意. 那求人不如尔 ...

  7. 前端模拟(mock)接口数据(koa)

    在前后端分离开发项目时,经常会有前后端进度不一致,可能前端界面开发已经完成,就等接口了,如果等接口出来再联调的话时间可能会来不及. 这个时候,前端就可以根据制定好的接口规范和接口文档来mock接口数据 ...

  8. nginx软件的编译安装步骤

    1.1 检查软件安装的系统环境 [root@web02 conf]# cat /etc/redhat-release CentOS release 6.8 (Final) [root@web02 co ...

  9. 170629、springboot编程之Druid数据源和监控配置二

    上篇是一种配置方式,虽然我们创建了servlet.filter但是没有任务编码,看着是不是很不爽.ok,接下来说一下简介的配置方式,使用代码注册Servlet,也是我个人比较推荐的! 1.创建Drui ...

  10. CH1401 兔子与兔子【字符串】【HASH】

    1401 兔子与兔子 0x10「基本数据结构」例题 描述 很久很久以前,森林里住着一群兔子.有一天,兔子们想要研究自己的 DNA 序列.我们首先选取一个好长好长的 DNA 序列(小兔子是外星生物,DN ...