第一节: quartz.net 2.0 简单介绍

 在网上看到别贴的话,要想成为技术高手就需要多多的看看别人的代码,理解别的思想,看开源项目就是一个不错的选择。说实话我太想成为技术高手,但是自己悟性太差,半天弄不明白理解不了别人写的代码,为了提高自己的阅读能力,希望自己坚持看完quartz2.0这个开源的项目,顺便也锻炼一下自己写博客的水平。                             

 

简单介绍:官网:http://quartznet.sourceforge.net/

Quartz有时钟的意思,也特别贴切这个开源的任务调度项目.

官方上说Quartz.NET是一个全功能的开源作业调度系统,从最小的应用程序,可用于大型企业系统。

个人简单理解Quartz就是定时或者指定时间执行自己写的job,既然是自己的任务,哪肯定是写的了。

 

用法功能:先简单的看个例子,看下Quartz是怎么执行自己写的job的。

 

1.首先呢先定义自己的job,只需要继承Quartz中的IJob接口就好,代码相当简单,没必要多说了:

public classMyJob :IJob

 {

        public void Execute(IJobExecutionContextcontext)

        {

            Console.Write("我执行了,时间:{0}",DateTime.Now);

        }

 } 

2.job有了,我想用Quartz执行它,怎么弄呢?

static void Main(string[] args)

{

            //调度器

            ISchedulerFactorysf =newStdSchedulerFactory();

            ISchedulersched = sf.GetScheduler();

            //job详情

            IJobDetailmyJob = JobBuilder.Create<MyJob>()

               .WithIdentity("job1","group1")

               .Build();

            //触发器

            ITriggertrigger = TriggerBuilder.Create()

                .WithIdentity("trigger1","group1")

                .StartNow()//立即执行

                .Build();

            //关联job和触发器

            sched.ScheduleJob(myJob, trigger);

            //执行

            sched.Start();

            Console.Read();

            //关掉

            sched.Shutdown(true);

}

 

3.运行看下结果,果然执行了,哈哈。

 

结语:不管怎么样,反正今天了解到了Quartz是个什么东东,怎么写下简单的代码用起来,收获不多,继续努力,同样疑问也不少,调度器是啥,触发器是……

 

代码:

[csharp]  view plain copy
  1. using System;  
  2. using Quartz.Impl;  
  3.   
  4. namespace Quartz.Demo  
  5. {  
  6.     class Program  
  7.     {  
  8.         static void Main(string[] args)  
  9.         {  
  10.             //调度器  
  11.             ISchedulerFactory sf = new StdSchedulerFactory();  
  12.             IScheduler sched = sf.GetScheduler();  
  13.   
  14.             //job详情,注意MyJob  
  15.             IJobDetail myJob = JobBuilder.Create<MyJob>()  
  16.                .WithIdentity("job1""group1")  
  17.                .Build();  
  18.   
  19.             //触发器  
  20.             ITrigger trigger = TriggerBuilder.Create()  
  21.                 .WithIdentity("trigger1""group1")  
  22.                 .StartNow()//立即执行  
  23.                 .Build();  
  24.   
  25.             //关联job和触发器  
  26.             sched.ScheduleJob(myJob, trigger);  
  27.   
  28.             //执行  
  29.             sched.Start();  
  30.   
  31.             Console.Read();  
  32.   
  33.             //关调  
  34.             sched.Shutdown(true);  
  35.         }  
  36.     }  
  37.   
  38.     public class MyJob : IJob  
  39.     {  
  40.         public void Execute(IJobExecutionContext context)  
  41.         {  
  42.             Console.Write("我执行了,时间:{0}", DateTime.Now);  
  43.         }  
  44.     }  
  45. }  

猜你喜欢

转载自zxb1985.iteye.com/blog/1841376