`
yimeng528
  • 浏览: 188715 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

第一节: 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 plaincopy
  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. }  
分享到:
评论

相关推荐

    .net 简单任务调度平台

    1) 平台基于quartz.net进行任务调度功能开发,采用C#代码编写, 支持corn表达式和第三方自定义的corn表达式扩展。 2) 架构以插件形式开发,具有良好的功能扩展性,稳定性,简单性,便于第三方开发人员进一步进行功能...

    IP网络地址监测

    2. 定时任务:利用.NET 2.0框架提供的Timer类或Quartz.NET等第三方库,设置定时任务来周期性执行ping检查。 3. ICMP通信:使用.NET Framework的System.Net.NetworkInformation命名空间中的Ping类来发送和接收ICMP...

    Himall第三方组件清单1

    7. **Quartz.net**:Quartz.net是一个开源作业调度框架,用于计划和执行长期运行的任务。它也遵循Apache License 2.0,源码在GitHub(https://github.com/quartznet/quartznet)上。 8. **AutoMapper**:AutoMapper...

    史上最好传智播客就业班.net培训教程60G 不下会后悔

    搜索引擎技术:Lucene.Net、多线程开发、爬虫技术、网页分析、正则表达式、Log4Net日志框架、Quartz.Net定时作业调度。 大型互联网开发技术:代码生成、网页静态化、基于JQuery的Web2.0页面开发、AJAX、SEO、网站...

    LoopiaDynamicDNSClient:适用于Loopia的动态DNS客户端

    选择您的第一个域,并根据您当前的外部IP更新其@ A记录。 根据Loopias的“ forbereda-doman-for-vart-dyndns-stod”,这应该是正确的。 如果有人对此有疑问,我将对其进行更新,以便轻松选择要更新的索引。 根据...

    CRM_WebAPI_Code.zip

    5. **定时触发**:使用计划任务库(如Windows Task Scheduler或第三方库如Quartz.NET)来安排任务每两小时运行一次。这可能涉及注册一个回调函数,该函数在指定的时间间隔后调用Web API。 6. **错误处理**:包含...

    C#关于System.Timer的用法

    不过,这也意味着如果你有大量并发的定时任务,可能需要考虑使用更高级的调度策略,比如`Quartz.NET`或者`Hangfire`等第三方库。 总的来说,`System.Timer`是C#中实现定时任务的基础工具,它简单易用,适合大部分...

    ABP框架介绍

    ABP框架支持多种第三方库和服务的集成,比如Hangfire和Quartz用于定时任务和后台作业,SignalR用于实时通信等,大大增强了框架的功能性和实用性。 #### 五、ABP框架的应用案例 ABP框架由于其高度的灵活性和可扩展...

    挂号系统Source

    7. **后台任务调度**:可能需要定时任务来处理一些周期性工作,如清理过期数据、统计分析等,可以使用Quartz.NET或其他调度框架实现。 8. **系统集成**:挂号系统往往需要与医院的HIS(医院信息系统)、EMR(电子...

Global site tag (gtag.js) - Google Analytics