zoukankan      html  css  js  c++  java
  • Quartz.NET入门

    Quartz.NET是一个开源的作业调度框架。

    官网地址:https://www.quartz-scheduler.net/
    目前最新版本为3.0.7,需要.NET Framework 4.5.2及更高版本以上。
    .NET Framework 4.0及以下可以用版本2.6.2。
    本文用的是2.6.2版本,下面为入门例子。

    1、创建2个简单任务

    Hello1Job.cs

    public class Hello1Job : IJob
        {        
            public void Execute(IJobExecutionContext context)
            {           
                LogHelper.Info("hello1");           
            }
        }

    Hello2Job.cs

     public class Hello2Job : IJob
        {        
            public void Execute(IJobExecutionContext context)
            {           
                LogHelper.Info("hello2");           
            }
        }

    2、创建任务服务

    QuartzService.cs

    //引用Quartz、Quartz.Impl;
    public class QuartzService
        {
            //调度器
            IScheduler scheduler;
            public QuartzService()
            {
                //调度器工厂
                ISchedulerFactory factory = new StdSchedulerFactory();
                scheduler = factory.GetScheduler();
            }       
            public void Start()
            {                     
                //创建任务
                IJobDetail job1 = JobBuilder.Create<Hello1Job>().WithIdentity(new JobKey("job1")).Build();
                //创建触发器,配置3秒执行一次
                ITrigger trigger1 = TriggerBuilder.Create().WithCronSchedule("0/3 * * * * ?") .Build();
    
                //创建任务
                IJobDetail job2 = JobBuilder.Create<Hello2Job>().WithIdentity(new JobKey("job2")).Build();
                //创建触发器,配置5秒执行一次
                ITrigger trigger2 = TriggerBuilder.Create().WithCronSchedule("0/5 * * * * ?").Build();
                
                //将任务与触发器添加到调度器中,如果需要多个就绑定多个即可
                scheduler.ScheduleJob(job1, trigger1);
                scheduler.ScheduleJob(job2, trigger2);
    
                //开始执行
                scheduler.Start();
            }
    
            public void Shutdown()
            {
                if (scheduler != null)
                {
                    scheduler.Shutdown(true);
                }
            }
        }

    3、调用

    QuartzService quartzJob = new QuartzService();
    quartzJob.Start();

    运行结果如下:

    2019-06-03 09:52:39,667 [DefaultQuartzScheduler_Worker-1] INFO  logging - hello1
    2019-06-03 09:52:40,000 [DefaultQuartzScheduler_Worker-2] INFO  logging - hello2
    2019-06-03 09:52:42,000 [DefaultQuartzScheduler_Worker-3] INFO  logging - hello1
    2019-06-03 09:52:45,000 [DefaultQuartzScheduler_Worker-4] INFO  logging - hello1
    2019-06-03 09:52:45,000 [DefaultQuartzScheduler_Worker-5] INFO  logging - hello2
    2019-06-03 09:52:48,000 [DefaultQuartzScheduler_Worker-6] INFO  logging - hello1
    2019-06-03 09:52:50,000 [DefaultQuartzScheduler_Worker-7] INFO  logging - hello2
    2019-06-03 09:52:51,000 [DefaultQuartzScheduler_Worker-8] INFO  logging - hello1
    2019-06-03 09:52:54,000 [DefaultQuartzScheduler_Worker-9] INFO  logging - hello1
    2019-06-03 09:52:55,000 [DefaultQuartzScheduler_Worker-10] INFO  logging - hello2
  • 相关阅读:
    GhostBSD 3.0RC3,基于GNOME的FreeBSD
    Nagios 3.4.3 发布,企业级监控系统
    Jolokia 1.0.6 发布, JMX远程访问方法
    微软希望开发人员不要使 WebKit 成为新版 IE6
    Kwort Linux 3.5 正式版发布
    EJDB 1.0.24 发布,嵌入式 JSON 数据库引擎
    Pale Moon 15.3 Firefox“苍月”优化版发布
    Galera Load Balancer 0.8.1 发布
    SmartSVN V7.5 正式发布
    PostgresQL建立索引如何避免写数据锁定
  • 原文地址:https://www.cnblogs.com/gdjlc/p/10966289.html
Copyright © 2011-2022 走看看