第一节: 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是个什么东东,怎么写下简单的代码用起来,收获不多,继续努力,同样疑问也不少,调度器是啥,触发器是……

 

代码:

using System;
using Quartz.Impl;

namespace Quartz.Demo
{
    class Program
    {
        static void Main(string[] args)
        {
            //调度器
            ISchedulerFactory sf = new StdSchedulerFactory();
            IScheduler sched = sf.GetScheduler();

            //job详情,注意MyJob
            IJobDetail myJob = JobBuilder.Create<MyJob>()
               .WithIdentity("job1", "group1")
               .Build();

            //触发器
            ITrigger trigger = TriggerBuilder.Create()
                .WithIdentity("trigger1", "group1")
                .StartNow()//立即执行
                .Build();

            //关联job和触发器
            sched.ScheduleJob(myJob, trigger);

            //执行
            sched.Start();

            Console.Read();

            //关调
            sched.Shutdown(true);
        }
    }

    public class MyJob : IJob
    {
        public void Execute(IJobExecutionContext context)
        {
            Console.Write("我执行了,时间:{0}", DateTime.Now);
        }
    }
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值