quartz的配置

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就按你的指令,定时为你服务了。
时间: 11-06

quartz的配置的相关文章

Quartz动态配置表达的方法

在项目中有一个需求,需要灵活配置调度任务时间,并能自由启动或停止调度.有关调度的实现我就第一就想到了Quartz这个开源调度组件,因为很多项目使用过,Spring结合Quartz静态配置调度任务时间,非常easy.比如:每天凌晨几点定时运行一个程序,这只要在工程中的spring配置文件中配置好spring整合quartz的几个属性就好. Spring配置文件 Xml代码?? <bean?id="jobDetail"?class="org.springframework.

Quartzs -- Quartz.properties 配置

Quartzs -- Quartz.properties 配置 文件加载位置 默认:优先顺序 Classpath:quartz.properties --> org/quartz/quartz.properties (quartz lib) 改变默认:设置一个系统属性"org.quartz.properties"指向对应的properties文件 程序中显示指定 在StdSchedulerFactory.getScheduler()之前使用StdSchedulerFactory.

quartz spring配置实例代码demo下载

原文:quartz spring配置实例代码demo下载 源代码下载地址:http://www.zuidaima.com/share/1550463459560448.htm

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

http://www.cnblogs.com/kay/archive/2007/11/02/947372.html 邮件或任务多次发送或执行的问题: 1.<property name="concurrent" value="false" />可以用于防止任务多次执行 2.将quartz的配置单独出来,防止tomcat加载spring. 具体做法:http://blog.csdn.net/zhujianpengzha/article/details/814

Spring中Quartz的配置

软件152苏锐 Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz,下面就看看在Spring中怎样配置Quartz:首先我们来写一个被调度的类: package com.kay.quartz;public class QuartzJob{ public void work()    {    System.out.println("Quartz的任务调度!!!");    }} Spring的配置文件: <?xml version="1.

quartz任务调度配置 解决jobDetail身份标识存在问题

applicationContext.xml配置:每五秒轮询一次.注意:周和日期不能同时为通配符”*“ 1 <bean id="planInfoServiceImpl" class="com.xxx.xxx"></bean> 2 <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailF

spring quartz定时任务配置【基础篇】

一个定时执行的job package dk.spring.quartz; import java.util.Date; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.springframework.scheduling.quartz.QuartzJobBean; /** * 使用spring集成的quartz调度 */ public class QuartzTe

quartz + spring 配置示例

<!-- 配置job定时任务类 --> <bean id="triggerCalculateLecturerProfitJob" class="com.itzixi.quartz.job.CalculateLecturerProfitJob"></bean> <!-- 配置jobDetail --> <bean id="triggerCalculateLecturerProfitJobMethod&qu

C# Quartz的配置

1. 介绍 Quartz为后台工作者提供了得便利,我们下面介绍一下它的配置.本文配置主要针对服务程序的配置. 但是在做下面配置之前,要安装包 Install-Package Quartz 2. Quartz配置有两种方法,第一种是纯XML配置:第二种是抛弃XML文件配置,用纯代码配置. 2.1 Quartz下的纯XML配置 1)首先新建job配置XML文件quartz_jobs.xml,内容如下: <?xml version="1.0" encoding="UTF-8&