Quartz.Net中的概念:计划者(IScheduler)、工作(IJob)、触发器(Trigger)。给计划者一个工作,让他在Trigger(什么条件下做这件事)触发的条件下执行这个工作
将要定时执行的任务的代码写到实现IJob接口的Execute方法中即可,时间到来的时候Execute方法会被调用。
CrondTrigger是通过Crond表达式设置的触发器,还有 SimpleTrigger等简单的触发器。可以通过TriggerUtils的MakeDailyTrigger、MakeHourlyTrigger等方法简化调用。调用代码参考备注。
初始化定时和结束定时的代码放到哪里(Application_Start,Application_End) 1.先在bin文件夹中引用Quartz.Net的dll 文件 Common.Logging.dll,Quartz.dll 2.Global文件中的Application_Start。
[csharp] view plaincopy //从配置中读取任务启动时间
int indexStartHour = Convert.ToInt32(ConfigurationManager.AppSettings["IndexStartHour"]);
int indexStartMin = Convert.ToInt32(ConfigurationManager.AppSettings["IndexStartMin"]); ISchedulerFactory sf = new StdSchedulerFactory();//执行者
sched = sf.GetScheduler(); JobDetail job = new JobDetail("job1", "group1", typeof(TestJob));//TestJob为实现了IJob接口的类,(工作名称,分组,那个类)
Trigger trigger = TriggerUtils.MakeDailyTrigger("tigger1", indexStartHour, indexStartMin);//每天10点00分执行
trigger.JobName = "job1";
trigger.JobGroup = "group1";
trigger.Group = "group1"; sched.AddJob(job, true);
sched.ScheduleJob(trigger);
sched.Start(); 3.Application_End时 sched.Shutdown(true);//结束时关掉 4.具体要执行的代码在TestJob中的 public void Execute(JobExecutionContext context)方法中
下面我们用几行代码搞定它。

1. 定义要执行的任务(实现Quartz.IJob接口),代码如下:

public class ShiftNotify : IJob
{
public void Execute(JobExecutionContext context)
{
//在此执行计划任务
//比如:“时间不早了,该起床啦!”
}
} 2. 将要计划执行的任务加入到调度器中。 完成这一步,需要三样东西:调度器(IScheduler)、任务(JobDetail)、触发器(Trigger)。 由于是在Web应用程序中进行调度,代码需要写在Global.asax.cs的Application_Start()方法中。 a) 创建一个调度器(职责:如果触发器设定的条件满足,就让预先定义好的任务干活):
ISchedulerFactory factory = new StdSchedulerFactory();
IScheduler scheduler = factory.GetScheduler();
scheduler.Start(); b) 创建一个任务(第1步已经定义好的任务,真正干活的): JobDetail job = new JobDetail("MyJob", typeof(ShiftNotify)); c) 创建一个触发器(从什么时间开始,多长时间触发一次):
Trigger trigger = TriggerUtils.MakeMinutelyTrigger(1);
trigger.StartTimeUtc = TriggerUtils.GetEvenMinuteDate(DateTime.UtcNow);
trigger.Name = "ShiftNotify"; 第一行代码设置的是1分钟触发一次。 第二行代码设置的是开始时间。之前遇到的问题就出现在这里。将DateTime.UtcNow写成了DateTime.Now,怎么也触发不了。 d) 将任务与触发器添加到调度器中: scheduler.ScheduleJob(job, trigger); 好了,完工! 不需要任何配置文件,Quartz.NET就按你的指令,定时为你服务了。

quartz的配置的更多相关文章

  1. 【Quartz】配置最简单的集群

    在许多情况,我们希望我们的定时任务是可靠的,不会因系统故障.机器宕机而导致某一笔定时任务不能按时运行.这种情况下,我们就需要为Quartz做个集群. 最简单的情况,有两台机器或两个应用,同时维护一批定 ...

  2. Quartz.NET配置

    概述 Quartz.NET 在开源任务调度框架中的翘首,它提供了强大任务调度机制,难能可贵的是它同时保持了使用的简单性.Quartz 允许开发人员灵活地定义触发器的调度时间表,并可以对触发器和任务进行 ...

  3. Quartzs -- Quartz.properties 配置

    Quartzs -- Quartz.properties 配置 文件加载位置 默认:优先顺序 Classpath:quartz.properties --> org/quartz/quartz. ...

  4. quartz 时间配置规则

    quartz 时间配置规则 格式: [秒] [分] [小时] [日] [月] [周] [年]  序号 说明  是否必填  允许填写的值 允许的通配符  1  秒  是  0-59    , - * / ...

  5. Quartz动态配置表达的方法

    在项目中有一个需求,需要灵活配置调度任务时间,并能自由启动或停止调度.有关调度的实现我就第一就想到了Quartz这个开源调度组件,因为很多项目使用过,Spring结合Quartz静态配置调度任务时间, ...

  6. spring boot1.0 集成quartz 动态配置定时任务

    转载自 https://www.imooc.com/article/36278 一.Quartz简介了解 Quartz Quartz 是一个完全由 Java 编写的开源作业调度框架,为在 Java 应 ...

  7. SPring中quartz的配置(可以用实现邮件定时发送,任务定时执行,网站定时更新等)

    http://www.cnblogs.com/kay/archive/2007/11/02/947372.html 邮件或任务多次发送或执行的问题: 1.<property name=" ...

  8. 初识quartz 并分析 项目中spring整合quartz的配置【原创+转载】

    初识quartz 并分析 项目中spring整合quartz的配置[原创+转载]2018年01月29日 12:08:07 守望dfdfdf 阅读数:114 标签: quartz 更多个人分类: 工具 ...

  9. 【使用篇二】Quartz自动化配置集成(17)

    出处:https://www.jianshu.com/p/49133c107143 定时任务在企业项目比较常用到,几乎所有的项目都会牵扯该功能模块,定时任务一般会处理指定时间点执行某一些业务逻辑.间隔 ...

  10. Quartz.Net 配置模板范例

        1.App.config <?xml version="1.0" encoding="utf-8"?> <configuration& ...

随机推荐

  1. mysql基础,DISTINCT关键字

  2. windows 解决缺失.dll的问题

    1.缺失MSVCR120.dell和MSVCP120.dll,如图: 这种问题是因为没有Microsoft Visual C++ 2013运行库的问题,自行百度在Microsoft官网下载即可,注意需 ...

  3. vue.js 服务端渲染nuxt.js反向代理nginx部署

    vue.js的官方介绍里可能提到过nuxt.js,我也不太清楚我怎么找到这个的 最近项目vue.js是主流了,当有些优化需求过来后,vue还是有点力不从心, 比如SEO的优化,由于vue在初始化完成之 ...

  4. GBK UTF8 GB2132

    GBK就是在保存你的帖子的时候,一个汉字占用两个字节,外国人看会出现乱码,为此我中华为自己汉字编码而形成之解决方案. UTF8就是在保存你的帖子的时候,一个汉字占用3个字节.但是外国人看的话不会乱码. ...

  5. 2、大O表示法

    一.大O表示法 大O表示法不是一种算法.它是用来表示一个算法解决问题的速度的快慢.一般我们描述一件事情完成的快慢是用时间描述的,比如说我完成一道计算题用了多少分钟.但算法的运算是很难用准确的时间来描述 ...

  6. 爬虫工程师常用的 Chrome 插件

    做多了爬虫都知道,写一个爬虫大部分时间不是在代码上,而是在分析网页上,所有有一套好用的工具可以极大节省劳动力,这里把平时积累的一些 Chrome 插件分享出来,均来自本人和同事推荐,并不定时更新,欢迎 ...

  7. 1 django

    1.MVC 大部分开发语言中都有MVC框架 MVC框架的核心思想是:解耦 降低各功能模块之间的耦合性,方便变更,更容易重构代码,最大程度上实现代码的重用 m表示model,主要用于对数据库层的封装 v ...

  8. Java8_Lambda表达式

            从2014年java8发布到现在已经有几个年头了,现在java11都发布了.公司最近把服务器环境重新搭建了一遍,jdk版本也从7换成了8,终于可以在代码里面写Lambda表达式了.作为 ...

  9. lambda表达式与函数接口的关系以及使用案例

    lambda表达式与函数式接口是结合使用的. 函数式接口:接口中只有一个抽象方法的接口,其中可以包括default修饰,static 修饰的实例方法.函数式接口可以在接口上添加@FuncationIn ...

  10. fetch 使用记录

    fetch api出来很多年了 ,由于兼容性问题之前一直没在项目中用到,最近做的项目只需兼容IE9+,把fetch引入了进来.目前用起来感觉挺好的,简洁. fetch 返回值是promise对象,对于 ...