zoukankan      html  css  js  c++  java
  • 任务调度

    1.Quartz框架核心概念

    Quartz对任务调度进行了高度抽象,提出了3个核心概念,并在org.quartz包中通过接口和类进行了描述

    任务:就是执行的工作内容。Quartz提供Job接口来支持任务定义

    触发器:定义触发Job执行的时间触发规则。Quartz提供Trigger类及其子类支持触发器功能,

    调度器:Quartz提供了Scheduler接口,将工作任务和触发器绑定,保证任务可以在正确的时间执行

    2.Quartz框架的使用流程

      a.NuGet引入资源包

      b.创建任务类,并继承IJob接口,并实现Execute方法

      c.创建调度器工厂    //ISchedulerFactory factory = new StdSchedulerFactory();

      d.创建调度器      //IScheduler scheduler = await factory.GetScheduler();

      e.创建一个任务     //IJobDetail job = JobBuilder.Create<JobInfo>().WithIdentity("myJob1", "group1").Build();

      f.创建一个触发器

      g.将任务和触发器添加到调度器里

      h.开始执行

    class Program
        {
            static void Main(string[] args)
            {
                TestJob();
                Console.ReadKey();
            }
            static async Task TestJob()
            {
                //创建调度器工厂
                ISchedulerFactory factory = new StdSchedulerFactory();
                //创建调度器
                IScheduler scheduler = await factory.GetScheduler();
    
                //创建一个任务
                IJobDetail job = JobBuilder.Create<JobInfo>().WithIdentity("myJob1", "group1").Build();
                //创建一个触发器
                ITrigger trigger = TriggerBuilder.Create().WithIdentity("myTrigger1", "group1").StartNow().
                    WithSimpleSchedule(a => a.WithIntervalInSeconds(1).RepeatForever()).Build();
                //将任务和触发器添加到调度器里
                await scheduler.ScheduleJob(job, trigger);
                //开始执行
                await scheduler.Start();
            }
        }
    

      

     public class JobInfo : IJob
        {
            public Task Execute(IJobExecutionContext context)
            {
                Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                //throw new NotImplementedException();
                return Task.FromResult(true);
            }
        }
    

      

  • 相关阅读:
    Java代理(静态/动态 JDK,cglib)
    Java数据库基础(JDBC)
    Servlet基础(工作原理、生命周期)
    Java XML DOM解析(xPath)
    java 文件操作
    从源码看集合ArrayList
    全面理解java异常机制
    python3 利用pip安装ipython notebook
    Centos的一个find命令配合rm删除某天前的文件
    在Pandas中直接加载MongoDB的数据
  • 原文地址:https://www.cnblogs.com/JueXiaoQiang/p/10407251.html
Copyright © 2011-2022 走看看