安装Quartz

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

程序包管理器控制台:

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

设置一个运行时间范围:

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

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

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

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

using Quartz;
using Quartz.Impl; namespace ConsoleApplication2
{
public class Program
{
static void Main(string[] args)
{
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH;mm:ss:ffff"));
//1.首先创建一个作业调度池
ISchedulerFactory schedf = new StdSchedulerFactory();
IScheduler sched = schedf.GetScheduler();
//创建出来一个具体的作业
IJobDetail job = JobBuilder.Create<JobDemo>().Build();
//NextGivenSecondDate:如果第一个参数为null则表名当前时间往后推迟2秒的时间点。
DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddSeconds(1), 2);
DateTimeOffset endTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddMinutes(3), 3);
//创建并配置一个触发器
ICronTrigger trigger = (ICronTrigger)TriggerBuilder.Create().StartAt(startTime).EndAt(endTime)
.WithCronSchedule("1,10,15,30,45,55 * * * * ? ")
.Build();
//加入作业调度池中
sched.ScheduleJob(job, trigger);
//开始运行
sched.Start();
Console.ReadKey();
}
} public class JobDemo : IJob
{
/// <summary>
/// 这里是作业调度每次定时执行方法
/// </summary>
/// <param name="context"></param>
public void Execute(IJobExecutionContext context)
{
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH;mm:ss:ffff"));
}
}
}
2017-03-14 09;50:04:3347
2017-03-14 09;50:10:0101
2017-03-14 09;50:15:0004
2017-03-14 09;50:30:0002
2017-03-14 09;50:45:0001
2017-03-14 09;50:55:0006
2017-03-14 09;51:01:0000
2017-03-14 09;51:10:0005
2017-03-14 09;51:15:0008
2017-03-14 09;51:30:0006
2017-03-14 09;51:45:0005
2017-03-14 09;51:55:0001
2017-03-14 09;52:01:0004
2017-03-14 09;52:10:0009
2017-03-14 09;52:15:0002
2017-03-14 09;52:30:0001
2017-03-14 09;52:45:0009
2017-03-14 09;52:55:0005
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. Rsync匿名访问漏洞

    前言 前两天总结了互联网或者说IT公司内网常见的漏洞,然后决定针对还没学习过不了解的漏洞进行学习了解,所以准备一一针对来研习,今天是第一篇,立一个Flag,争取今年搞定,为啥说的这么艰难,因为平时工作 ...

  2. IIS 无法访问.net的动态文件

    编译器错误消息:CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319... 在“c:\windows\temp”这个文件夹添 ...

  3. Android动态加载ListView中的Item

    我这周上网看到动态增加listview的每一项item的布局,今天抽空自己写了一个,方便自己日后使用,这个效果还是很不错的,用到了Adapter的notifyDataSetChanged()方法,当点 ...

  4. RMAN备份详解

    1.7.1数据库备份与RMAN备份的概念 1.数据库完全备份:按归档模式分为归档和非归档 归档模式 打开状态,属于非一致性备份 关闭状态,可以分为一致性和非一致性 非归档模式 打开状态,非一致性备份无 ...

  5. Spring中常用的注解(@Entity,@Table,@Column,@Repository,@Service)

    当项目变得比较大的时候,如何还使用hbm.xml文件来配置Hibernate实体就会变得比较复杂.这里Hibernate提供了Annotation注解方式,使得Hibernate的映射文件变得很方便管 ...

  6. 如何通过命令在Ubuntu中安装PyCharm

    对于Ubuntu 16.10和Ubuntu 17.04,通过Ctrl + Alt + T打开终端,或通过从应用启动器搜索“terminal”,打开后,执行以下步骤: 安装: 1.通过命令添加PPA存储 ...

  7. Linux登录失败处理功能

     本文要实现的功能:如果有人恶意尝试破解你的服务器密码,那么这个功能就能帮你起到一定的作用,当尝试密码错误超过设定的次数后,就会锁定该账户多长时间(自行设定),时间过后即可自行解锁,这样可以增加攻击者 ...

  8. 170712、springboot编程之集成shiro

    这篇文章我们来学习如何使用Spring Boot集成Apache Shiro.安全应该是互联网公司的一道生命线,几乎任何的公司都会涉及到这方面的需求.在Java领域一般有Spring Security ...

  9. Python大数据:jieba 中文分词,词频统计

    # -*- coding: UTF-8 -*- import sys import numpy as np import pandas as pd import jieba import jieba. ...

  10. 使用celery之了解celery(转)

    原文  http://www.dongwm.com/archives/shi-yong-celeryzhi-liao-jie-celery/   前言 我想很多做开发和运维的都会涉及一件事:cront ...